一、使用JSR223 PostProcessor在一个线程组中的参数传递
接口的响应直接返回一个字符串,并且别的接口需要依赖这个字符串。试了好几种方法都不行,正则表达式的提取全部试了一遍没有将响应值提取出来,最后终于通过使用JSR223 PostProcessor处理好了,记录一下过程。
getuuid接口的返回信息直接返回了uuid的字符串信息;正则表达式的提取不知道怎么提取(我遇到正则会比较抓狂);网上大多数都是json、html格式的提取,各种尝试之后没能成功;
使用JSR223 PostProcessor的方式的过程如下
1.右击getuuid接口选择post processors里面的JSR223 PostProcessor
2.点击右上角的黄色三角号可以打开日志信息;脚本也比较简单,设置myuuid为全局变量;
3.在下面用到uuid的地方直接获取myuuid变量
4.之后接口请求;请求参数就可以正常获取到uuid的值啦。
更多的方法可以参考:https://blog.youkuaiyun.com/u010693492/article/details/83620231
二、使用BeanShell PostProcessor 在线程组之间的参数传递
1.在进程压测的时候;发现一个线程组内的接口被访问相同的次数;但是getuuid接口我只想访问一次,返回的uuid信息一直作为后面接口的参数信息;于是将getuuid接口放到单独的线程组中,这样就可以方便的控制各个线程组的执行信息
这样设置之后在执行整个测试计划的时候;第一个线程组先运行且只运行一次;
2.添加一个BeanShell PostProcessor;将uuid信息放入到jmeter的属性中;后面的线程组就可以方便的获取到uuid信息了。
3.在第二个线程组中就可以通过${__P(myuuid,)}函数获取到myuuid信息了
总结:通过参数获取同一个线程组内的变量信息,使用${myuuid};通过jmeter属性获取不同的线程组内的属性信息,通过函数${__P(myuuid,)}