jmeter实现排除登录对单个事务的压测

需求:用户登录后,会循环请求数据上报,对该请求做一个50用户的并发,并循环执行长达10分钟。循环的时候,需要排除登录的过程。

事务:可以是一个接口,可以是一个功能,如一个web页面的访问,可以是一个请求,如循环的数据上报,这里以数据上报为例。

思考:

(1)使用setUp Thread Group来做登录的初始化请求,LR不就用init实现这个么?【暂未成功,可以不看,若有好的方法,敬请赐教】

结果:因为有多个线程,cookie管理器不支持

(2)沿用上诉方法,解决cookie管理器不支持的问题:使用BeanShell PostProcessor,__setProperty,__P函数实现token的跨线程组使用,但csv data set config 参数化上,在跨线程组间受到阻碍,如我有账号A,B,C,D,我在setUp Thread Group中使用了A,B登录,到Thread Group中真正压测的时候,参数居然从C开始取值。【该问题暂未找到办法,敬请赐教】

(3)使用仅一次控制器,勉强实现测试需求【暂时能想到的方法,不是很满足测试需求,但暂可用】

对登录使用仅一次控制器去限制整个执行中,就执行一次,其余接口可以循环,可以持续。使用cookie管理器控制token,这样勉强解决问题。

(4)环境恢复(如某些需求有订单,或者有其他流程,此时测试某一个事务,测试完成后应该将环境恢复)

使用仅一次控制器,设置定时器,延迟环境恢复接口(如取消订单)的执行时间,该执行时间要满足前面压力测试循环执行的时间,保证前面的压力测试能执行完成。

原文地址:https://www.cnblogs.com/Jollyxi/p/7454342.html