默认JMeter设置的变量只能在本线程组内使用,
如上图,在线程组引用 setup线程组内 设置的token 变量,不能取到。
设置属性
JMeter中有两种类型 变量
- 属性
- 变量
区别就是 我们在引用变量 ${}
属性是可以跨线程组的。可以在不同的线程组内获取到。
添加beanshell 后置处理器
登录接口上—【右键】—【添加】—【后置处理器】—【Beanshell后置处理程序】
添加完成之后,在位置的先后顺序上需要注意:
1 先进行json提取器将token的值提取出来。
2 在使用Beanshell将token值设置为属性
setProperty 函数
打开函数助手,在函数助手中选择【setProperty】
将生成的代码复制到 beanshell后置处理器中
${__setProperty(token_prop,${token},)}
添加调试取样器
将调试取样器添加进来,JMeter属性设置为True
再次运行。可以在查看结果树中看到设置的属性值。
在调试取样器中可以看到token已经设置为属性了。在线程组就可以引用属性来及进行跨线程组传参.
引用属性
在函数助手中找到P函数,引用属性的名字。
在请求中引用属性
${__P(token_prop,)
再次执行,可以看到已经能够成功从setup线程组中引用token值,实现了跨线程组传参。
练习
根据需求梳理测试点
根据测试点整理测试数据
测试数据放在csv文件中
cityName | userName | userPhone |
---|---|---|
整理测试数据。
cityName,userName,userPhone
shanghai,fahai,13012312389
shanghai,,13012312389
,fahai,13012312389
huoxing,fahai,13012312389
shanghai,fahai,
shanghai,fahai,130123123888
shanghai,fahai,1301231238
shanghai,fahai,11112312389
创建需求
添加CSV文件配置
将编写的测试数据整理到CSV文件中并上传到CSV文件配置中
设置完成之后 在jmeter的请求中
请求体中的数据 引用变量
运行
相关问题
- 在JMeter中,csv 参数化 如何做?
测试单接口,需要考虑不同的场景。
- 先整理测试点,根据测试点整理测试数据,将数据放在csv文件中
- 线程组中新建http请求,以及创建csv文件设置。 csv文件设置中上传文件路径,设置变量名
- http请求中引用变量。
- 线程组中设置循环次数,有多少条数据就设置循环多少次。
关键词: csv文件配置,循环次数,变量
- JMeter中如何进行跨线程组传参?
因为json提取器设置的变量 只能在本线程组内使用,不同跨线程组使用,要想跨线程组使用,
- 先将要传递的参数使用json提取器提取出来
- 上游接口添加 beanshell 后置处理程序, 使用
__setProperty
函数,将json提取器设置的变量设置为属性 - 另外线程组中的请求中通过
P
函数来引用上面设置的属性,实现传参。
关键词, 设置属性, 函数助手, setProperty, P