一、前言
相信大家对这个工具都很陌生,国内能搜索到的资料很少,那么为什么突然推荐想起来这个工具呢?第一,我觉得它很好用;第二,为后面介绍的服务端性能自动化框架铺成。
二、Taurus简介
Taurus 是 BlazeMeter 的核心组件,其是一个开源自动化框架,用于运行各种开源负载测试工具和功能测试工具,支持的最流行开源压测工具有 JMeter、Selenum、Gatling、The Grnder、Locust 等。
官网:https://gettaurus.org/
其的关键特性有:
·我们可以使用 YAML 或 JSON 来描述性能测试,这就是我们想要的 test as code
·测试方案定义和设计
·测试场景参数化和执行
·测试场景结果分析
·将上述所有流程集成到持续交付流程中
·以上所有的自动化
它可以根据我们选择的性能测试类型自动下载对应的工具。比如我们使用JMeter 压测引擎,那么 Taurus 会自动化下载并安装。
扩展并抽象了压测引擎,如JMeter,提供了一种创建,运行和分析性能测试的简单方法。
支持主流的操作系统 MAC/Linux/window 等。
三、为什么推荐?
较为简单使用和升级
脚本易于阅读,易于版本控制,友好的统一DSL(特定领域的语言)以定义测试方案。
能够支持现有 JMeter(或 Grinder 或 Gatling 或 Selenium)测试引擎的能力。
能够支持直接解析原生脚本,如 JMeter JMX文件。
能够将多个测试脚本或 DSL驱动的测试合并场景。
支持实时报告(不推荐 BlazeMeter 收费 Dashboard)。
多种测试输出格式,包括但不限于:
基础测试工具的本机结果格式。
测试执行期间的控制台统计信息和伪图形图表。
可以定义灵活的通过/失败标准。如果结果超过阈值,则可以自动将测试标记为失败。
平台无关性:在可以运行 Python 和 Java 的地方运行。
四、环境准备
Taurus的环境要求:
Python 2.7 or higher,推荐 3.x
本文演示在 Centos 7.x 下安装。
1、安装 python3.x
安装 shell 脚本如下:
#!/bin/bash
# author: zuozewei
# 先安装安装几个必须的包,以方便后续的操作
yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel
# 上Python的官网 下载源码包
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
# 解包,解压缩
xz -d Python-3.6.1.tar.xz
tar -xvf Python-3.6.1.tar
# 编译
cd Python-3.6.1
./configure --prefix=/usr/local/python3.6 --enable-optimizations
make
make install
# 为了避免每次都输入一大串路径,加个链接
ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3
测试下版本:
python3 --version
2、安装pip3.x
安装 shell 脚本如下:
#!/bin/bash
# author: zuozewei
# 下载源代码
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
# 使用 Python 3 安装
python3 setup.py install
# 创建链接
ln -s /usr/local/python3.6/bin/pip /usr/bin/pip3
3、安装Taurus
3.1、常规安装
安装 shell 脚本如下:
#!/bin/bash
# author: zuozewei
# 下载安装
sudo pip3 install bzt
# 创建链接
sudo ln -s /usr/local/python3.6/bin/bzt /usr/bin/bzt
验证命令:
[root@VM_0_10_centos ~]# bzt -h
Usage: bzt [options] [configs] [-aliases]
BlazeMeter Taurus Tool v1.13.9, the configuration-driven test running engine
Options:
-h, --help show this help message and exit
-l LOG, --log=LOG Log file location
-o OPTION, --option=OPTION
Override option in config
-q, --quiet only errors and warnings printed to console
-v, --verbose Prints all logging messages to console
-n, --no-system-configs
Skip system and user config files
3.2、Docker Image
拉取镜像:
$ docker pull blazemeter/taurus