背景介绍:
需要做登录和文件上传的自动化接口测试
其中文件上传需要用到登录接口返回的token值。
操作步骤:
1.新建线程组:登录
通过json参数提取器获取到登录接口返回的token
2.新建线程组:文件管理→新建请求:文件上传→请求头中传入登录接口中的token
问题:
发现不同线程组之间无法通过以往的形式传递参数,文件上传接口无法获取到token值
解决方法:
通过网上搜索解决方案等尝试,发现通过把获取的token参数通过Beanshell Sampler,把该值赋值成一个属性,然后再通过前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值
如下:
1.新建Beanshell Sampler,把该值赋值成一个属性
${__setProperty(token,${token})}
2.新建前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值
String accesstoken = props.get("token");
vars.put("accesstoken",accesstoken);
3.文件上传接口请求头中token值获取${accesstoken},就可以正常请求了。
需要做登录和文件上传的自动化接口测试
其中文件上传需要用到登录接口返回的token值。
操作步骤:
1.新建线程组:登录
通过json参数提取器获取到登录接口返回的token
2.新建线程组:文件管理→新建请求:文件上传→请求头中传入登录接口中的token
问题:
发现不同线程组之间无法通过以往的形式传递参数,文件上传接口无法获取到token值
解决方法:
通过网上搜索解决方案等尝试,发现通过把获取的token参数通过Beanshell Sampler,把该值赋值成一个属性,然后再通过前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值
如下:
1.新建Beanshell Sampler,把该值赋值成一个属性
${__setProperty(token,${token})}
2.新建前置处理器Beanshell PreProcesser获取这个属性,通过vars.put赋值
String accesstoken = props.get("token");
vars.put("accesstoken",accesstoken);
3.文件上传接口请求头中token值获取${accesstoken},就可以正常请求了。