时间:2020-7-11
概念:
JMeter, 一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。
问题描述:
测试的时候希望测试某个restful接口的响应能力,但是接口需要使用登录结果中的session和userId。那么就需要这么个流程:执行一次登录,保存session和userID,一次初始化请求(使用登录的session),然后使用1000个线程执行待验证接口多次。
这时候,需要两个Thread Group,其中一个执行登录和初始化接口共一次,另一个执行待验证接口多次。
这时候,需要解决session和userId的获取,同个Thread Group直接变量传递,以及多个Thread Group的HttpRequest之间变量传递的问题。
查阅相关资料,得出以下结论:
解决方案:
1、保存变量
Login接口的响应中包含session,userId,可以使用Json Extractor取出来保存在变量里。
对Login接口请求添加Json Extractor,如下
然后对Json Extractor如下设置
2、如果是同一个Thread Group的请求,可以直接如下使用
3、如果是不同Thread Group的请求,需要通过BeanShell Assertion添加属性的方法访问
首先在login组里添加属性,如下:
在第二个组里如下访问:
4、最后通过View Results Tree查看访问接口