自动化工具 Python 调 Jmeter 执行 自定义多场景多个 jmx 测试计划,达成半步无人值守 (二)

异彩飞天 · 2021年11月18日 · 1664 次阅读

精益求精

李小龙:我不怕学一万种腿法的人,我怕的是一种腿法练一万次的人。

近期,再有机会做性能测试,重拾 20 年按测试平台的规划,统一规范性能测试项目文件目录(v2.0)-- Python 调 Jmeter 执行 自定义多场景多个 jmx 测试计划,达成半步无人值守 (一),忍笑不禁。看着旧代码还有优化的空间,于是并按一个更方便、更标准、更规范的要求给代码做重构。

  • 更方便
    手动创建文件夹更少,输入参数更少,执行命令更少

  • 更标准
    减少了非必要过程文件

  • 更规范
    兼容 windows、linux、macos 操作系统使用,并美化了汇总报表。

效果展示

注重全局,同时不遗漏过程细节,更容易发现问题,找到性能拐点



这里 jmeter + influxdb + grafana 的搭建就不在这过多阐述,毕竟网络上教程很多,通过 docker 搭建也快捷。

使用方法

  • 需要将 jmeter 追加的 path 路径中

  • 创建性能测试项目

--project
----jmx
------*.jmx
----start.py

  • jmx 文件线程数、循环数参数化

  • 安装 python 必要模块

    pip install -U efficient_test --user
    
  • start.py 文件内容,通常是

from efficient_test.jmeter import combine_cli_exec, gen_summary_report

  # 这里用于测试的前置准备,例如生成测试输入参数文件
def initdata():
    pass

initdata()
 # '.' 指性能测试项目所在地址
 # x 指线程数
 # 10 是循环次数
 # per_testplan_sleep 是每次执行jmx后停顿时间
[ combine_cli_exec('.', x, 10, per_testplan_sleep=2) for x in range(1,10) ]

gen_summary_report('.')
  • 执行命令
python3 start.py
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册