Jmeter-3-多场景传参总结

话说

各位读者盆友,中午好!

这篇博客高度抽象总结下Jmeter传参。之所以是高度总结,那是因为这篇博客主要是给自己写的。后期会做详细的截图和说明(比较费时),这里暂且高度总结一下。笔者参考的文档在结尾,请有一定实际操作后,在回头看笔者这篇博客,否则会云里雾里的。

开发工具:Jmeter
难度系数:★★★☆☆
建议用时:2H


1)如何发现问题?

2)如何获取Token?(Jmeter)

3)如何萃取Token?(Jmeter)

4)如何跨线程组(Threads Group)传递参数?


1)如何发现问题?

发现问题,有时候需要刻意去发现,有时是很自然的事情。在解决一个问题的时候,可能无心插柳就发现了其他问题;这个时候,发现了问题,不要错过。

eg:

50个线程loop 1000次,会导致获取Token的接口访问1000次!假设这个接口响应Average是:15s,那么:就是4H!假设有10个场景,每个场景10个HTTP Samples,合计100个Samples;每个Samples访问:50*1000即5万次,那就是500万次访问量,可想等待结果是多么的痛苦,而且最终结果可能是:Abort!

笔者把多个场景(TestFragment)组织到一个ThreadsGroup下,形成一个.jmx文件,Ant驱动这个文件的时候,会通过权限验证的一个接口获取Token,JWT接口把获取到的Token存到Cookie里面。因为这2个接口放在当前的ThreadsGroup下面,Cookie里有了内容,只要设置一个全局的HTTP Cookie Manager即可在所有的线程里面共享这个cookie,这个时候:ThreadsGroup 、loop都是通过Jenkins传入,那么这个ThreadsGroup就按照你指定的线程数、循环次数运行所有的TestFragment,你的获取token的接口也不例外,那么访问这个获取Token接口的次数就是:ThreasNumber*Loop ,极大的资源浪费!

这里我们发现了2个问题:

a、获取Token的接口Average Response是多久?对执行所有场景影响多大?为什么?

b、如何做到只获取一次Token即可?

2)如何获取Token?(Jmeter)

 访问登录接口即可,接口自然会返回一个Token;

 当然可能也会有JWT令牌接口,把获取到的Token存放到Cookie里面。

3)如何萃取Token?(Jmeter)

这个问题是解决b问题的。

要想获取一次Token,可以通过:设置全局变量、全局Cookie做到。 问题是如何拿到这个token?通过Post Processors获取。也就是在执行获取Token接口之后,我们要做什么(萃取出Token);然后通过Regular Expression Extrator萃取。(萃取过程比较妖精)

我们需要另起一个TreadsGroup单独来获取Token,这样可以单独控制其ThreadsNumber、Loop次数。这里用到了SetUp ThreadsGroup。(对应TearDown ThreadsGroup).名字通俗易懂,作用好比:init()。

4)如何跨线程组(Threads Group)传递参数?

3)获取到Token之后,是没法通过User Defined Variables让全局使用的(要不要试试?),当然也就没法全局Cookie了。

如何跨线程组传参?也是在获取Token接口结束之后要搞事情。BeanShell PostProcessor来处理。这样该接口萃取的Cookie就可以作为全局共享了,其他ThreadsGroup都可以访问了。

这里再次感谢一下这个博主,是你们零碎的总结给笔者提供了足够多远的视角!感谢!

参考文档


1、jmeter接口测试3-正则表达式提取器的使用
https://www.cnblogs.com/xueli/p/7405258.html?utm_source=itdadao&utm_medium=referral

2、Jmeter基础之—jmeter基础概念
https://www.cnblogs.com/fnng/archive/2012/12/21/2828440.html

3、JMeter请求执行次数 你想执行几次就执行几次
https://www.cnblogs.com/wysk/p/6971929.html

4、究竟什么是ramp up
关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念
https://www.cnblogs.com/mochaMM/articles/6957773.html

5、Jmeter—–跨线程组传递cookies值
https://blog.csdn.net/niedongri/article/details/70255656

6、Jmeter—-正则表达式提取respones数据
https://blog.csdn.net/niedongri/article/details/70240686

7、转
Jmeter中正则表达式提取器使用详解
https://blog.csdn.net/wanglha/article/details/50781503


好,下期再会!

猜你喜欢

转载自blog.csdn.net/meiceatcsdn/article/details/80262468