Jmeter使用文档(循环怎么用)

2023-03-02  本文已影响0人  言午日尧耳总

Jmeter使用文档(循环怎么用)

基础用法

界面模式

================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
参数 示例 说明
jmeter D:\apache-jmeter-5.5\bin\jmeter jmeter启动路径
-n -n 用CLI模式运行
-t -t D:\demo\abc.jmx 测试文件路径
-l -l D:\demo\adb.csv 执行结果记录,每一行是每个步骤执行汇总信息
-e -e -o的固定搭配
-o -o D:\demo\report\ 汇总报告目录,测试结束后会生成html报告,会自动创建目录

起步

创建的结构如下

* 测试计划
    * 线程组
        * 查看结果树
        * 汇总报告
        * 用户定义的变量
        * 循环控制器
            * 调试取样器
// 右键"线程组"显示的菜单(节选)

* 添加
    * 取样器
        * HTTP请求                      // http测试
        * 调试取样器(Debug Sampler)      // 用于查看用户变量,调试循环控制器时很有用
        * BeanShell取样器               // BeanShell脚本,可以用于清理参数,复制等
        * ...其他插件取样器              // 其他插件可提供丰富的取样器
    * 逻辑控制器
        * IF控制器                      // 判断控制,如有未登录用户先调用登录接口进行登录
        * 事务控制器                    // 步骤比较多的情况下,可以分别放入事务控制器,这样就能展开缩放便于管理
        * 循环控制器                    // 循环
        * While控制器                  // 循环的一种,可以搭配"CSV文件"
        * ForEach控制器                // 循环的一种,可以搭配"用户定义变量"
    * 定时器
        * 固定定时器                     // 等待时长
    * 配置原件
        * 用户定义的变量                  // 用户自己设置的变量,在取样器中可以使用${xxx}方式替换(取样器需要支持,不是所有取样器都能用)
        * CSV Data Config              // CSV数据文件设置,可以与"While控制器"搭配使用
    * 监听器
        * 查看结果树                     // 查看取样器执行结果
        * 汇总报告                       // 汇总结果,如成功率、平均时长等

循环控制

用户定义变量 + ForEach控制器

创建的结构如下

* 测试计划
    * 线程组
        * 查看结果树
        * 汇总报告
        * 用户定义的变量
        * ForEach控制器
            * 调试取样器
* 调试取样器
    * user=10
    * user_id_1=10
    * user_id_2=20
* 调试取样器
    * user=20
    * user_id_1=10
    * user_id_2=20

CSV文件 + While循环

一个CSV读取单元结构如下

* BeanShell取样器
* While控制器
    * CSV数据文件设置
    * IF控制器
        * 调试取样器
vars.remove("id");
vars.remove("name");
vars.remove("age");
${__groovy("${id}"!="end")}
id,name,age
1,张三,18
3,李四,33
5,王八,8
end
${__groovy("${id}"!="end")}
* 测试计划
    * 线程组
        * 查看结果树
        * 汇总报告
        * <CSV单元>     // 执行CSV
        * <CSV单元>     // 再次执行CSV不受影响
        * 循环控制器     // 循环n次依然可行
            * <csv单元>

经验

定时器

// 以下两种顺序,都是先执行定时,再执行取样器
* 固定定时器
* 调试取样器
---
* 调试取样器
* 固定定时器
// 所有调试取样器都要等待3秒后执行,因为定时器会传播

* 固定定时器(3秒)
* While控制器
    * 调试取样器
// 等待6秒执行第1个,等待6秒执行第2个

* 固定定时器(3秒)
* 调试取样器
* 固定定时器(3秒)
* 调试取样器
* 事务管理器
    * 固定定时器
    * 调试取样器    // 可替换成任意取样器,作用是使定时器生效
上一篇 下一篇

猜你喜欢

热点阅读