命令行模式
将关联_xpath.jmx 文件放在bin目录下,然后在命令行窗口执行以下命令(在jmeter/bin下打开cmd执行):
jmeter -n -t 关联_xpath.jmx -l report\01-result.jtl -e -o tableresult
在命令行模式下运行jmeter脚本,默认在jmeter/bin目录下去寻找脚本,将执行结果和测试报告保存在bin目录下;
若想运行其他目录下的脚本,或将结果和测试报告保存在其他目录下,那么需要指定完整路径。
jmeter -n -t C:\关联_xpath.jmx -l C:\report\01-result.jtl -e -o C:\tableresult
逻辑控制器
1、如果if控制器
位置:线程组-----添加------逻辑控制器-------如果(if)控制器
配置如果控制器:
- 不勾选任何选项的使用方法(首先要先在测试计划中添加对应的变量):
- 字符串比较(参数和值都需要加引号)
- 数字比较
- 布尔值(参数的值必须小写,true可以省略不写)
- 勾选将条件解释为变量表达式
- 借助函数_jexl3或_groovy直接输出true/false
- 全部勾选
- 借助${JMeterThread.last_sample_ok}
- 返回的是上一个取样器的执行结果,如果执行通过,返回true,那么下一个取样器才可以正常执行;反之,下一个取样器就不执行。
2、ForEach控制器
位置:逻辑控制器------ForEach控制器
使用方式:foreach控制器和用户定义变量配合使用
- 设置用户定义变量
- 变量名:前缀_数字 例:name_1
- 要求后缀数字一定是连续的
2.配置ForEach控制器
3.使用ForEach控制器输出的变量${新名称}
3、循环控制器
组件作用域
组件的作用范围:
分类:
- 取样器是作用域的参考物,本身无所谓作用域的概念
- 以结果树为代表的大部分组件,作用域:直接父级取样器+直接兄弟取样器
- 以逻辑控制器为代表的组件:只对子级取样器有效。
元件执行顺序
在同一作用域范围内,test plan中的元件按照以下顺序执行:
- Config Elements----配置元件
- pre-porcessors----前置处理器
- Timer----定时器
- Sampler----取样器
- Post-porcessors(除非Sampler得到的返回结果为空)----后置处理器
- Assertions(除非Sampler得到的返回结果为空)----断言
- Listener(除非Sampler得到的返回结果为空)----监听器
注意:Pre-porcessors、Post-porcessors和Assertions等元件仅对Sampler作用,如在它们作用域内没有任何Sampler,则不会被执行。
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在test plan中的上下顺序依次执行。