前言

相信大家对这个工具都很陌生,国内能搜索到的资料很少,那么为什么突然想起来推荐这个工具呢?第一,我觉得它很好用;第二,为后面介绍的服务端性能自动化框架铺成

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 下安装

安装 python3.x

安装 shell 脚本如下:

1. #!/bin/bash

2. # author: zuozewei

3.

4. # 先安装安装几个必须的包,以方便后续的操作

5. yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel

6. # 上Python的官网 下载源码包

7. wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

8. # 解包,解压缩

9. xz -d Python-3.6.1.tar.xz

10. tar -xvf Python-3.6.1.tar

11. # 编译

12. cd Python-3.6.1

13. ./configure --prefix=/usr/local/python3.6 --enable-optimizations

14. make

15. make install

16. # 为了避免每次都输入一大串路径,加个链接

17. ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3

测试下版本:

1. [root@VM_0_10_centos ~]# python3 --version

2. Python 3.6.1

安装pip3.x

安装 shell 脚本如下:

1. #!/bin/bash

2. # author: zuozewei

3.

4.

5. # 下载源代码

6. wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz

7. tar -zvxf 9.0.1.tar.gz

8. cd pip-9.0.1

9.

10. # 使用 Python 3 安装

11. python3 setup.py install

12.

13. # 创建链接

14. ln -s /usr/local/python3.6/bin/pip /usr/bin/pip3

安装Taurus

常规安装

安装 shell 脚本如下:

1. #!/bin/bash

2. # author: zuozewei

3.

4. # 下载安装

5. sudo pip3 install bzt

6.

7. # 创建链接

8. sudo ln -s /usr/local/python3.6/bin/bzt /usr/bin/bzt

验证命令:

1. $ bzt -h

2. Usage: bzt [options] [configs] [-aliases]

3.

4. BlazeMeter Taurus Tool v1.13.9, the configuration-driven test running engine

5.

6. Options:

7. -h, --help show this help message and exit

8. -l LOG, --log=LOG Log file location

9. -o OPTION, --option=OPTION

10. Override option in config

11. -q, --quiet Only errors and warnings printed to console

12. -v, --verbose Prints all logging messages to console

13. -n, --no-system-configs

14. Skip system and user config files

Docker Image

CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装:

1. $ sudo yum install docker

安装之后启动 Docker 服务,并让它随系统启动自动加载:

1. $ sudo service docker start

2. $ sudo chkconfig docker on

拉取镜像:

1. $ docker pull blazemeter/taurus
注意:如果是默认的Docker 官方镜像源会慢的抓狂,最好对你的 Docker 镜像源做加速设置,参考以下链接:
  • 阿里云:https://help.aliyun.com/document_detail/60750.html?spm=a2c4g.11186623.4.1.56254685aFuWTn
  • 腾讯云:https://cloud.tencent.com/document/product/457/9113

查看已完整镜像:

1. [root@VM_0_10_centos ~]# docker images

2. REPOSITORY TAG IMAGE ID CREATED SIZE

3. docker.io/blazemeter/taurus latest 3ab3eb131ed8 9 days ago 3.08 GB

小结

本文带着大家快速搭建起来 Taurus 使用环境,为后续的实践部分做准备