一.简介

Taurus是-个开源的自动化框架,用于运行各种开源负载测试工具和功能测试工具。其支持最流行的开源负载测试工具Apache JMeter、Selenium、 Gatling、 The Grinder等。

Taurus的关键特性有:

  • 我们可以使用YAML或JSON来描述性能测试。这也正是我们想要的test as code。
  • 它会根据我们选择的性能测试类型自动下载相应的工具。比如在下例中会使用JMeter ,那么Taurus会自动下载JMeter并安装。

Jenkins的Performance插件就是使用Taurus来进行性能测试的。在进行性能测试之前,首先要准备环境。

二.JMeter测试

1.在运行性能测试环境的机器上,准备Python环境。

2.安装Performance插件

3.不需要自行安装Taurus,Performance插件如果发现机器上没有安装Taurus,它会自动运行pip install bzt命令进行安装。

4.在现有的项目中加入Jenkinsile

pipeline {
agent any stages {
stage('performance test') {
steps {
bzt params: 'blaze_ exist_ _jmeter_ config. yml
}
}
}
}

5.在项目中加入blaze_exist_jmeter_config.yml文件

execution:
- scenario: simple scenarios:
simple:
script: SimpleTestPlan. jmx modules:
jmeter:
#注意,下载文件必须使用. zip后缀
download- link: http://mirrors . tuna . tsinghua . edu. cn/ apache/ /jmeter/binaries/ apache - jmeter- {version}. zip
version: 5.0

blaze_exist_jmeter_config.yml是Taurus的配置文件,用于描述如何进行性能测试。

以上配置很简单,就是执行一个名为simple的场景( scenario) ,这个场景就是执行现有的JMeter脚本。modules配置了JMeter的下载地址及版本。上例中 ,我们指定了国内的下载链接,避免从国外下载。

在Jenkinsfile中,bzt是Performance插件提供的一个步骤。其参数如下:

  • params :字符串类型, Taurus配置文件的路径
  • alwaysUseVirtualenv:布尔类型,如果为false, 则不使用virtualenv进行环境隔离。默认值为true
  • bztVersion :字符串类型, bzt版本
  • generatePerformanceTrend :布尔类型,是否在Jenkins项目详情页生成性能趋势图。默认值为true
  • useBztExitCode :布尔类型,是 否使用bzt步骤的退出码作为Jenkins项目的构建结果。默认值为true
  • useSystemSitePackages :布尔类型,是否为virtualenv加上"--system-site-packages"参数,默认值为true
  • workingDirectory :字符串类型,指定bzt的工作目录
  • workspace:字符串类型,已经废弃,请使用workingDirectory

只有params参数是必需的,其他参数都是可选的。至此,以上用法可以满足大部分人在Jenkins上使用JMeter的需求。关于Taurus配置文件的更多语法,大家可以前往Taurus官网学习。最后,性能测试结果将显示在该项目的首页

最新文章

  1. linux socket编程实例
  2. C#的两个大方向
  3. SpringMVC整合MongoDB开发 架构搭建
  4. 【转】Unity 之 移动设备的触控操作
  5. 二模 (8) day2
  6. 使用Jmeter测试MySQL性能——(2)多客户端配置
  7. share point 读取 metadata
  8. [Angular 2] Set Properties on Dynamically Created Angular 2 Components
  9. Android之利用HTTP网络通信实现与PHP的交互(三)
  10. Msys下gcc的配置
  11. 浙大PTA - - 堆中的路径
  12. 运行从别处复制过来的linux可执行程序
  13. MVC中配置OutputCache的VaryByParam参数无效的问题
  14. zoj 3820 Building Fire Stations(树上乱搞)
  15. phpcms的验证码替换 及 phpcms实现全站搜索功能
  16. 物联网细分领域-车联网(OBD)市场分析
  17. HNOI2017 单旋
  18. toFixed()一不小心踩了一个坑
  19. Unity的Mesh压缩:为什么我的内存没有变化?
  20. ArcGis恢复初始设置(默认设置、出厂设置)的方法

热门文章

  1. [bzoj5462]新家
  2. [bzoj1032]祖码
  3. linux中为何每次修改完配置文件后都需要重新加载配置文件
  4. python的异常打印
  5. Codeforces 193D - Two Segments(线段树)
  6. 【R】表达矩阵指定绘制两样本的相关性散点图?
  7. C语言 fastq文件转换为fasta文件
  8. nginx_rewrite
  9. java四则运算规则
  10. 非寻常方式学习ApacheTomcat架构及10.0.12源码编译