最近有2个项目同时需要性能测试,中间出现了不少问题,简单记录下,以防后续忘记。

问题1:同一线程如何共享cookie或session

基于系统代码比较旧,所以目前有一个很大的问题,我们的登录如果接口测试,需要登录两次(很不理解),基于此,暂时没有想到比较好的方法,目前的方法就是第一次登录后台app接口,然后请求第二次的web后台接口;公用一个cookie。这里就需要拿第一次登录的cookie作为第二次请求的body的一部分,所以需要用到同线程中共用cookie。

第一步:登录接口如图

登录接口返回结果中有token如下所示

{"msg":"成功登录","rcm.session.id":"884508c3b2504a5b922aacccc8aaf552","code":0}

第二步:使用正则表达式获取对应的token信息,操作如图:(问题一非必要)

如上:
引用名称:access_token
正则表达式:"rcm.session.id":"(.+?)"
模板:$1$

第三步:使用BeanShell 后置处理程序将获取的token转换为全局变量(问题一非必要)

${__setProperty(access_token,${access_token},)};

第四步:添加第二个登录接口如图3中的rcm_login_web

第五步:修改jmeter配置文件

修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把CookieManager.save.cookies设置为true,并去掉前面的注释#号,如下图所示:

第六步:在线程组下添加一个HTTP Cookie管理器,此Cookie管理器属于当前线程组,如图

此时启动线程测试,发现两个接口都调用成功,且公用同一个cookis

问题2:跨线程如何共享cookie或session

正常情况下,性能测试其他接口,登录接口仅需要登录一次,非不需要每次都要登录。如果跨线程多个接口,共享cookie的操作如下

第一步:参考问题1的第一、二、三步操作,

第二步:在测试计划下添加一个HTTP Cookie管理器,获取之前的cookie信息,如图

cookie使用:
值:${__P(access_token)}
域:当前的访问地址
路径:默认/


此时运行线程,验证以上配置实现跨线程使用cookie。

问题3:SetUp线程组如何使用

在接口测试中,登录接口仅需要出现登录一次;所以这里使用到SetUp线程组,具体使用可参考jmeter压测学习15-setUp线程组实现用户先登录

问题4:Stepping Thread Group使用

Stepping Thread Group可以实现类似的混合压测场景,具体配置说明如下

 This Group will start 100 threads:这次的测试总共会起 100 个线程。
 First , wait for 0 seconds:等待 0s 后开始起线程,也就是不等待直接起线程。
 Then start 10 threads every 30 seconds:每起 10 个线程后会运行 30s,再起余下的 10 个线程,再运行 30s,以此类推。
 Using ramp-up 5 seconds:前面每起多少个线程的时候花 5s,与上面结合起来即 5s 内起 10 个线程,运行 30s,然后再再 5s 内再起 10 个线程,再运行 30s,以此类推。
 Then hold load for 60 seconds. :全部的线程起来后,运行 60s 后开始停止(跟 loadrunner 类似,从 jmeter 聚合报告里面可以看出来,这里的 hold load 的意思,其实是这些线程,一直在请求,相当于 jmeter 普通线程组里面的循环运行)。
 Finally , stop 5 threads every 1 seconds:最后停止线程,5 个线程停一次,等 1s 再停 5 个线程(当然,第一次是 hold 时间一过就先停 5 个线程,然后等 1s 再停余下的 5 个线程)。

原文地址:http://www.cnblogs.com/LOVEYU/p/16867199.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性