线程组内参数传递
后一个api的调用需要用到前一个api返回的某些信息,这时候就需要提取出前一个api中某些信息。这里演示两个api,第一个api会产生一个token,然后第二个api需要带上这个token执行。
api写好之后,右键添加一个后置处理器 JSON Extractor,然后填入变量名称和response body中需要提取的字段,需要提取auth中client_token的值,jmeter中具体写法为$.auth.client_token
{
"request_id": "7dbe69f4-bc82-feea-4e29-b91d33fb6374",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": {
"client_token": "s.XPladcapF3**************",
"accessor": "mrW5l8pi7Yf5WEET9GrEom41",
"policies": [
"root"
],
"token_policies": [
"root"
],
"metadata": null,
"lease_duration": 0,
"renewable": false,
"entity_id": "",
"token_type": "service",
"orphan": false
}
}
在下一个api中,添加需要用到的变量,这样就可以实现参数传递了
但是这种方法不适合跨线程,下面介绍跨线程的参数传递,如果需要查看提取的值是否正确,可以添加一个Debug Sampler
跨线程组参数传递
思路:jmeter中,属性是全局的,是可以动态设置的;而变量是独属于每个线程的
两个api分别位于一个线程组,create secret需要用create token产生的token,首先还是需要给create token添加一个后置处理器,这一步和上面一样
接着需要再创建一个后置处理器 BeanShell PostProcessor,然后添加如下代码,将上一步提取出来的变量设置成一个属性
上面这个函数可以查看jmeter的函数助手,打开函数助手对话框,选到对应的函数,然后在函数参数那里填入相应的值,点击生成按钮,就会生成需要的语句
之后在下一个线程组的api中可以读取这个属性的值,同样,写法可以参考函数助手,这样就实现了跨线程组传递参数
还可以参考这个链接 https://www.cnblogs.com/allening/p/11650208.html