jmeter使用
-
1.属性和变量
- 属性property props---全局
- 引用格式 ${__P(lg_token)}
- jmeter.properties文件
JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性 - 查看属性
给测试计划/WorkBench--添加-->Non Test Elements--添加-->Property Display
- 变量variable vars
- 引用格式 ${name}
- 定义变量
- 用户自定义变量------线程组
- 通过前置或后置处理器生成的变量
- 使用csv参数化的变量
- 使用CSV 数据文件设置
- 使用函数助手
- 重复定义的变量
- 不同线程组--只有最后一个定义会生效
- 前置/后置处理器 以及 csv参数化 可以用来重新定义变量,这些重定义仅仅影响当前线程
- 用户参数
待补充
- 属性property props---全局
-
2.组件执行顺序与作用域
- 重要组件
- 配置元件 config element
- 用于初始化默认值和变量,以便后续采样器使用
- 前置处理器 pre processors
- 通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值
- 计时器 timer
- 让作用域内的每一个采样器都在执行前等待一个固定时长
- 让作用域内的每一个采样器都在执行前等待一个固定时长
- 采样器 sampler
- 发送请求到指定服务器,并等待服务器的响应。
- 后置处理器 post processors
- 通常被用来处理服务器的响应数据,特别是服务器响应中提取数据
- 断言 assertions
- 检查从服务器获得的响应内容,从而知道与测试期望是否相符
- 监听器 listener
- 提供了对JMeter在测试期间收集到的信息的访问方法
- 逻辑控制器 controller
- 帮助用户控制JMeter的测试逻辑(可以改变其子测试元件的请求执行顺序)
- 配置元件 config element
- 组件执行顺序
- 配置元件--->前置处理器--->定时器--->取样器--->后置处理器--->断言--->监听器
- 组件作用域
- 采样器--不存在作用域的问题
- 逻辑控制器--子..
- 只对子节点中的取样器和逻辑控制器起作用
- 其他六个
- 做sampler的子,则只对其父节点起作用
- 做其他的子,则对其父节点下的其他所有后代节点起作用
- 重要组件
-
3.配置元件
- 信息头管理器
- 请求默认值
- 参数列表
- 注意
- 一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加
一个测试计划最好只有一个Manager组件,因为Jmeter无法处理多个Manager的情况
- 一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加
- 用户定义的变量
- 随机变量
- 计数器
- 好像是取样器的计数,指一次运行中的递增(线程数*循环次数)
-
4.提取器
-
5.逻辑控制器
-
6.beanshell
- (1)概述
- 什么是Bean Shell
- 一种完全符合Java语法规范的脚本语言
- 前置处理器 定时器 采样器 后置处理器 断言 监听器
- log 写入信息到jmeber.log文件
log.info("This is log info!"); - ctx 应用了当前线程的上下文
使用方法可参考:org.apache.jmeter.threads.JMeterContextvars 操作jmeter变量 (本质上是局部变量容器Map)
更多方法可参考:org.apache.jmeter.threads.JMeterVariables -
- vars.get(String key)
- vars.put(String key,String value)
- props.get("START.HMS");
- props.put("PROP1","1234");
更多方法可参考:org.apache.jmeter.samplers.SampleResult- getResponseDataAsString() 获取响应信息
- getResponseCode() 获取响应code
- sampler gives access to the current sampler
- 在beanshell的Parameters里面引入参数
${u1} 10086loveu~" - 参数通过bsh.args[]按顺序提取
vars.put("v1",bsh.args[0]);vars.put("v2",bsh.args[1]); - bean shell提供了一个内置变量Parameters,来保存参数的集合
vars.put("v3",Parameters);
- 什么是Bean Shell
- (4)自定义函数
待补充(5)引用外部文件 -
- java文件
- 通过source("代码路径")方法引入
- 调用方法和java一样
new一个class,再调用里面的具体方法
- addClassPath("D:\\")方法引入class文件
- 用import导入包及类
- 然后就可以像java一样调用了
- 方法一:把jar包放到jmeter目录\apache-jmeter-2.13\lib\ext下
- 方法二:在Test Plan的右侧面板最下方直接添加需要引用的jar包
- java文件
- (1)概述
-
7.断言
- 响应断言
- json断言
- beanshell断言
- 断言持续时间
- 大小断言-内容的大小