性能测试工具 当 BlazeMeter 遇上 Taurus

· August 01, 2018 · Last by 捉虫子的小强 replied at March 13, 2019 · 3845 hits

书接上文:
通过 @harsayer小马哥的领路入门@Nuanyang2333 明远大神 的深夜介绍
机缘巧合下的我估计可能发现了 Jmeter 的更高级打开方式 BlazeMeter 和他的核心组件 taurus

读前准备--会用到的英文单词(百度翻译):

  • Taurus 中文名:金牛座、金牛宫
  • ramp-up 斜坡上升
  • concurrency 并发性
  • hold-for 坚持
  • iterations 迭代
  • scenario 场景
  • criteria 标准

我的理解:

  • BlazeMeter是对Jmeter 的封装和补强
  • 如果你有用过Httprunner 的YML 配置表的写法吃用效果更佳 (别问我是怎么知道的你在站内搜索下"Taurus"便知 )
TaurusYML结构 ---注解---
execution 执行配置部分
scenarios 场景配置部分
reporting 接口配置部分

安装以及Docker镜像的打开方式

入门简介

举三个栗子:

1.青铜栗子:

execution:
- concurrency: 100 #并发 100
ramp-up: 1m #斜坡上升1分钟
hold-for: 5m #坚持5分钟
scenario: quick-test #场景“quick-test

scenarios:
quick-test: #场景名称
requests: #发起请求(大胆猜测默认是get请求)
- http://blazedemo.com #请求的地址

2.钻石栗子:

execution:
- iterations: 50
concurrency: 10
scenario: with_script

scenarios:
with_script:
script: my-existing.jmx

reporting:
- module: passfail #报告样式:passfail
criteria: #成功/失败标准
- "avg-rt>150ms for 10s, continue as failed" #断言部分1
- "fail>50% for 10s, stop as failed" #断言部分2

3.王者栗子: 欢迎钻石级别以上玩家挑战

execution:
- concurrency: 250
throughput: 500
ramp-up: 3ms
hold-for: 1h
steps: 5
scenario: blazemeter-recording

scenarios:
blazemeter-recording:
timeout: 5s
retrieve-resources: false
store-cache: false
store-cookie: false
default-address: http://blazedemo.com
headers:
User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
Accept-Language: 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
Accept-Encoding: 'gzip, deflate, sdch'
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp'
requests:
- /index.php
- url: '/reserve.php'
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
body:
fromPort: Boston
toPort: London
- url: '/purchase.php'
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
body:
airline: United Airlines
flight: '234'
fromPort: Boston
price: '432.98'
toPort: London
- url: '/confirmation.php'
method: POST
label: '/confirmation.php'
headers:
Content-Type: application/x-www-form-urlencoded
body:
address: test
cardType: visa
city: test
creditCardNumber: test
inputName: test
nameOnCard: ettest
rememberMe: 'on'
state: test
zipCode: test
- /index.php
- /vacation.html

排过的坑

  • 科学上网
  • 在BlazeMeter官网注册个账号
  • 获取Token
  • 上传结果到你的 BlazeMeter 生成高颜值报告

  • 你需要在先准备base-bzt-rc.yml 配置表

  • 表内输入步骤3中获得的token

modules:
blazemeter:
token: 6666666666666:bb6666666666089ad6ee934b9a5c6871c10 #在你的BlazeMeter
#APIid:d9a0d1fa2d37848d3db05a4c # APIid and API secret joined with ':'
#API secret :bb9c42e0b28136198560111f1b8397a20d6277a8962a9fcbb089ad6ee934b9a5c6871c10
test: Test1 # name for test to store reports
project: MyProject # name for project to store test, can be numeric project ID
public-report: false # set to true to create a public link to the report

在运行CLI时 加上参数

./base-bzt-rc.yml

例如:

bzt xxx.yml ./base-bzt-rc.yml

(别问我如何知道的,你翻看几次文档和英文视频推敲下就知道了)

运行过成中Taurus 会启动一个python Gui 的仪表盘 监控脚本运行的情况(失败率、运行进度、失败原因、压力机性能参数、概况曲线图)

> 就这样,一份高大上(清晰明liao)的测试报告就生成好了。





土味结尾:
" 一二三 ,木头人。"
" 你输了,因为你的心动了。"
或许,你该去试试这款新的工具了~

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 15 条回复 时间 点赞

这些结果是在本地,还是上传到他们的网站上?

#3 · August 02, 2018 作者
watchdog 回复

结果数据.jtl csv 在本地,上传会帮你渲染成页面

回复

如果公司有安全相关的要求,报告虽然挺好看的,但是这个不太合规
可以考虑的方案:分析结果数据,自己画图

@BensonMax BlazeMeter 和 Taurus 是很强大是几乎所有可知名开源工具的集大成者,几乎可以做 接口 接口性能 UI自动化 也集成支持了new relic 等APM监控 和支持了各种云服务的配置. 所有接入统一在taurus 的YML用例配置人口下, 有优秀的在线平台 和 报告展示. 几乎可以做任何事了.

目前 我没看到具体哪些是付费内容.... 你看到过详细介绍吗

#6 · August 02, 2018 作者
qianxing 回复

因地制宜,它山之石攻玉,脱敏操作。另外,它还有其他多种报告样式,完全可以本地操作。不一定依赖这个web report

#7 · August 02, 2018 作者
小马 回复

貌似给钱可以加大你的虚拟用户数最多到十万,给你公司做督办教学。是的,官网说它几乎可以做任何事

回复

数据上传上去,虽然可能是没有敏感数据,还是不放心啊。。。。。

watchdog 回复

http://gettaurus.org/docs/Monitoring/ 它的监控也是用的
1 jmeter的server agent 插件
2 Graphite

这些都是可以配置在本地local玩的,因为blazemeter 都是尽量用的别人的轮子 组合整合起来 . 比如监控搜集数据 就是用的以上.

你要是会grafana 的话 可以用grafana+Graphite 把这个监控 搭建到自己本地的. 就是把搜集的数据用grafana展示配置了.不传给那个
blazemeter云报告服务分析展示了.

本身还提供了 开发调试taurus 部署到本地的方法,http://gettaurus.org/docs/DeveloperGuide/ 可以尝试着debug调试下 看看上传数据这里 有什么问题 或者fiddler一下 看往

address: https://a.blazemeter.com # reporting service address
data-address: https://data.blazemeter.com # data service address 都上传了什么

#10 · August 02, 2018 作者
watchdog 回复

也提供本地的Junit的报告,你喜欢什么前端展示自己配上去就好了。

小马 回复

哦是,用的就是grafana+InfluxDB

小马 回复

看到收费的了 我只想说一句 真是贵

#13 · August 22, 2018 作者
小马 回复

之前提及的本地化部署有链接吗?我貌似没看到?

你好! 看到这个不错,能交流下吗,你的QQ多少,多谢! 我的346712481

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up