编者:李国帅

qq:9611153 微信lgs9611153

时间: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,如下

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

 

然后对Json Extractor如下设置

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

 

2、如果是同一个Thread Group的请求,可以直接如下使用

 

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

3、如果是不同Thread Group的请求,需要通过BeanShell Assertion添加属性的方法访问

首先在login组里添加属性,如下:

 

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

在第二个组里如下访问:

 

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

4、最后通过View Results Tree查看访问接口

在Jmeter的多个ThreadGroup以及多个HttpRequst之间传递参数

 

相关文章: