正则表达式提取器
有时候我们要测的接口参数需要另一个接口参数返回的结果时,就可以用正则表达式提取器
- 右键你的http请求 --> 添加 --> 后置处理器 --> 正则表达式提取器
- 要检查的响应字段 选择 主体
- 其他填写例如下表:
# 当我们的响应数据为如下这种时
{
"code":0,
"hint":"success",
"msg":"成功",
"token":"123456",
}
| 引用名称: | token |
|---|---|
| 正则表达式: | "token":"(.+?)" |
| 模板: | $1$ |
| 匹配数字(0代表随机): | -1 |
| 缺省值: | null |
注:
# 模板:
表示使用提取到的第几个值:
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个
# 匹配数字:
0 代表随机取值,1 代表全部取值
- 其他地方需要该参数时,填写${token}就可以使用提取出来的token值。
Debug
有时候我们的正则表达式取不出结果或者想调试正则表达式时就可以用debug
- 右键线程组--> 添加 -->sample --> Debug sample
- 运行你的测试计划并点击 查看结果树 中的 Debug sample 中的 响应数据 来看你的正则表达式抓到了什么值,例如:
token_1=123456
token=null
Synchronizing Timer
性能测试中我们经常提到一个概念就是“并发”,其实在实际真实的性能测试中是不存在真正的并发的。为了更真实的模拟对一个请求的并发测试场景,我们通常设置一个集合点,JMeter中提供了这样的一个功能设置。
请注意:线程组中一定要有足够的请求数(线程*循环次数)
- 右键线程组--> 添加--> 定时器--> Synchronizing Timer
- Number of Simulated Users to Group by: 100
注: Number of Simulated Users to Groupby:每次释放的线程数量。如果设置为0,等同于设置为线程租中的线程数量。
- Timeout in milliseconds: 1000
注:Timeout in milliseconds: 如果设置为0,Timer将会等待线程数达到了"Number of Simultaneous Users toGroup"中设置的值才释放。如果大于0,那么如果超过Timeout inmilliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users toGroup"中设置的值,Timer将不再等待,释放已到达的线程。