1 前言
很多时候我们测试一个接口的时候,可能需要预先设置一下条件,类似pytest、unitest的setup,执行完之后我们需要对环境进行清理,类似类似pytest、unitest的teardown,前置操作用来准备测试数据,后置是用来清理恢复环境的。jmeter 里面也有个 setUp group可以实现前置准备工作,teardown group实现后置处理。
2 实例demo
我们还是以果创云上接口为例子,我们需要测试的是查询会员个人资料接口:App/User/Profile,但是查询接口需要有用户登录的token,uuid才有权限去访问。那么我们的前置操作就是先登录,取出相关参数,后面的接口带着这些参数就有权限访问了在测试计划里面,新增 setUp 线程组
3 setup线程组
3.1 添加请求头以及请求默认值
参考Http Request Default我们可以把ip,port剥离出来
3.2添加登录接口
因为我们添加了http request default 所以这里的ip port我们都无需再填写,如果这里也填入了ip以及port,jmeter会议http ququest里面的参数为最高优先级。其他参数我们根据对应的接口参数填入就行
运行测试,可以从返回值中看到我们需要的token以及uuid,下一步就是如何去提取他,参考token提取
但是这里提取的变量,在当前线程组能引用到,下面我们需把token设置为系统的全局变量,这样再其他的线程组里面我们就可以直接引用,方法就是添加BeanShell 后置处理程序
http Request–>add–>post processor–>BeanShell PostProcessor
通过函数KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty()}…{__P(属性名称,)}
4 添加普通线程组
接着添加我们需要测试的个人信息接口的访问路径,
运行后查看结果树请求头部,可以看到已经关联成功
4 teardown 线程组
在使用jmeter测试的时候,测试之前会有个数据准备工作,测试完成后如果产生了一些多余的数据,我们应该对数据还原清理相关的测试数据。测试结束使用tearDown线程组清理本次测试产生的多余数据,可以调用对应的删除接口删除,也可以直接删除数据库的数据。
我们然仍然以果创云为demo
4.1 利用上述setup线程组创建注册接口如下
4.2 添加登录接口
详细见 3.2添加登录接口 需要把token以及uuid提取出来为teardown 线程做辅助
查看结果
添加提取器获取uuid token
为了让变量在其他线程组中使用我们需要把提取到的变量设置为全局变量
4.3 teardwon线程组
使用取消注册接口删除注册的用户 这样每次注册都是一个新的用户,这样就方便维护测试数据了