性能测试工具 当 BlazeMeter 遇上 Taurus

· 2018年08月01日 · 最后由 捉虫子的小强 回复于 2019年03月13日 · 4166 次阅读

书接上文:
通过 @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 · 2018年08月02日 Author
群主是狗 回复

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

回复

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

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

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

#1 · 2018年08月02日 Author
乾行 回复

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

#2 · 2018年08月02日 Author
老马 回复

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

回复

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

群主是狗 回复

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 · 2018年08月02日 Author
群主是狗 回复

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

老马 回复

哦是,用的就是 grafana+InfluxDB

老马 回复

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

#12 · 2018年08月22日 Author
老马 回复

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

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册