背景介绍:

需要做登录和文件上传的自动化接口测试

其中文件上传需要用到登录接口返回的token值。

操作步骤:

1.新建线程组:登录

通过json参数提取器获取到登录接口返回的token

Jmeter中线程组之间传参_文件上传

 

 2.新建线程组:文件管理→新建请求:文件上传→请求头中传入登录接口中的token

Jmeter中线程组之间传参_请求头_02

 

 问题:

           发现不同线程组之间无法通过以往的形式传递参数,文件上传接口无法获取到token值

解决方法:

通过网上搜索解决方案等尝试,发现通过把获取的token参数通过Beanshell Sampler,把该值赋值成一个属性,然后再通过前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值

如下:

1.新建Beanshell Sampler,把该值赋值成一个属性

${__setProperty(token,${token})}

Jmeter中线程组之间传参_线程组_03

 

 2.新建前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值

String accesstoken = props.get("token");
vars.put("accesstoken",accesstoken);

Jmeter中线程组之间传参_文件上传_04

 

 3.文件上传接口请求头中token值获取${accesstoken},就可以正常请求了。

需要做登录和文件上传的自动化接口测试

其中文件上传需要用到登录接口返回的token值。

操作步骤:

1.新建线程组:登录

通过json参数提取器获取到登录接口返回的token

Jmeter中线程组之间传参_文件上传

 

 2.新建线程组:文件管理→新建请求:文件上传→请求头中传入登录接口中的token

Jmeter中线程组之间传参_请求头_02

 

 问题:

           发现不同线程组之间无法通过以往的形式传递参数,文件上传接口无法获取到token值

解决方法:

通过网上搜索解决方案等尝试,发现通过把获取的token参数通过Beanshell Sampler,把该值赋值成一个属性,然后再通过前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值

如下:

1.新建Beanshell Sampler,把该值赋值成一个属性

${__setProperty(token,${token})}

Jmeter中线程组之间传参_线程组_03

 

 2.新建前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值

String accesstoken = props.get("token");
vars.put("accesstoken",accesstoken);

Jmeter中线程组之间传参_文件上传_04

 

 3.文件上传接口请求头中token值获取${accesstoken},就可以正常请求了。