在jemter实际工作使用中,我们经常会遇到这种情况:一个脚本中可能存在多个线程组,在这些线程组中通常会进行跨线程之间的参数传递,那么,通过jmeter怎么实现这种跨线程的参数传递呢?下面我将通过一个实例来演示这种操作
业务场景:直接收款(现金支付)
业务流程:1、登录APP 2、获取登录信息 3、收款选择客户 4、进行现金支付
其中业务流程2/3/4步骤中的请求参数都依赖于步骤1的响应参数,如登录后服务器返回的token、不同用户登录APP后返回不同的门店ID(officeid)等
现在,我打算把登录APP操作放在setUp线程组中(一般登录只执行一次,且在脚本运行开始时就需要执行,所以放在此线程组中),其他业务流程(获取登录信息、收款选择客户、进行现金支付)放在另一个线程组中 ,如下图所示

通过正则表达式获取APP登录返回的门店ID(officeid)和token,如下所示


接下来将通过BeanShell后置处理器将获取的officeid和token值通过_setProperrty函数进行全局处理,如下所示

最后将处理后的全局变量新值(此处的newofficeId和newtoken),在另一个线程组中通过__P函数进行调用即可,如下所示

网友评论