不同线程组之间的参数共享
思路:创建两个线程组,第一个线程组里面的 “登陆接口” 中登陆成功后获取到的token,要作为第二个线程组的http请求头中的参数信息
结构如图
![在这里插入图片描述](https://img-blog.csdnimg.cn/78d8100c35294b9d9c5b4b4ebd2be31e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_13,color_FFFFFF,t_70,g_se,x_16)
第一步:测试计划–>>勾选第一个选项
【ps:很多时候跨线程无法获取到参数就是没有勾选这个选项导致的】
![在这里插入图片描述](https://img-blog.csdnimg.cn/6892d5c9d53241dea3b8897c8b6638ff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16)
第二步:添加线程组–>>添加“http请求”,将接口相关信息填写完成,可以再添加一个“查看结果树”,方便查看接口请求是否成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc34a96826b14bfa9e23626eb04210a2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16)
第三步:登陆接口请求成功之后,添加一个后置处理器来提取token,我这里使用的是“正则表达式提取器”
![在这里插入图片描述](https://img-blog.csdnimg.cn/d1af87340f564d17bb080dcef016b192.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16)
第四步:添加一个后置处理器BeanShell PostProcessor来将token设置为全局变量newtoken
注意:jmeter本身的内置函数中,“__setProperty()” 函数可以把某参数的值设置成jmeter本身的内置属性,而jmeter的内置属性是所有线程组都可以调用的,是全局变量。各个线程组调用时,只需使用调用 jmeter属性的函数“${__P(parameters,)}”来调用相应的属性即可。 ![!](https://img-blog.csdnimg.cn/b829a4289bd94f7fad79cb3ee6ae2290.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_15,color_FFFFFF,t_70,g_se,x_16)
第五步:添加第二个线程组,第二个接口“创建任务接口”,填写好相关的接口信息
【ps:因为这个接口需要用到设置为全局变量的token,如果只是在请求参数中需要用到token的话,可以直接调用${__P(newtoken,)},但是我这个是在请求头中用到,所以我还需要第六步】 ![在这里插入图片描述](https://img-blog.csdnimg.cn/707d119b38ed4ef089d5fd637e64cad6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16)
第六步:添加一个配置元件“HTTP信息头管理器”,使用${__P(newtoken,)}获取token
![在这里插入图片描述](https://img-blog.csdnimg.cn/be4515d0310e403ebf02fb7548b07379.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16) 因为我的接口文档说明如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/265bb39556674cfa805091eadccc421d.png)
最后,也可以使用前置处理器BeanShell PreProcessor来获取全局变量newtoken ![在这里插入图片描述](https://img-blog.csdnimg.cn/9ba0fc117c9f4e10b80344eddd39c62f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/c49646f4fa2647199b50c87a7de45847.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAYWxleDc3dGFvaHVh,size_20,color_FFFFFF,t_70,g_se,x_16)
|