~~~~~~~~~~~时隔半年多,终于又可以抽出时间来写东西啦~~~~~~~~~~~没有废话,直接上干货
一、引言
先给大家讲个好理解的例子当作背景:最近随着各大城市开始陆陆续续的举办马拉松竞赛,(不知道各位科技宅们有没有去参加的呢?)“西红柿”的广大市民也争相报名参加。
此次竞赛有男女混合组、亲子组、半马组、、、、、、等等组别,这里就以男女混合组为例,展开讲一讲:
那么,峰回路转,结合性能测试,考一考大家:
灵魂一问:此次马拉松竞赛的被测对象是谁呢?(肯定有小伙伴就会抢答:是参加竞赛的人,那么答案是,错误!!!)没错,就是本次“西红柿”马拉松竞赛的承办方。
灵魂二问:测试的内容是什么呢?没错,就是要看一看“西红柿”马拉松竞赛的承办方提供的场地道路、安保力量、医疗保障等等方面、、、、、、能承受多少运动员的参与。
二、Number of Threads(user)
见字知意,就是在“男女混合组”这个组别中有多少运动员参加。那么此处是有10000人参加。
(可见西红柿的市民们的运动热情还是很高涨的~~~~~~~哈哈哈)
三、Ramp-up period(seconds)
不懂咱就查一查,对的,就是启动时间的意思,重要的事情说三遍,是启动、启动、启动。注意:线程启动时间 不等于 全部请求运行完的时间
就是指要让这10000个人(分批次的)在600秒(也就是10分钟)内通过起跑线。并不是说要让这些人在10分钟内跑完,哈哈哈。
很多小伙伴(包括我)对此一下子摸不着头脑,跑个步要什么启动时间,难道不是枪一响就全部启动吗?不明白的话,咱就讲事实(上网查了,马拉松确实是分批跑的)、摆道理来给小伙伴说道说道。
马拉松,那么多人呀,是不允许(--因为不安全--)也不可能(--因为场地放不下那么多人--)让那么多人哗啦一下全部从同一起跑线出发的。
再结合性能测试,(除并发测试的情况下),我们也不会让所有的模拟用户同一时刻全部启动开始发出请求,~~~~~~要是压测把公司的服务器压坏了,老板就要找你喝茶谈话了~~~~~~。
四、Loop Count
意思:循环计数
也就是让这10000名运动员跑10次全程 ,当然这也是不可能啦,只是在此处举个例子而已。
Infinite 意思是 无限的,就是让这些运动员一直跑呀跑,直到规定的时间结束。这个属性的使用需要结合接下来要讲的这个属性Specify Thread lifetime 一块讲~~~~~~~~~~~~~~~~
五、Same user on each iteration
意思:每次迭代都有相同的用户
在 JMeter 中,user 就是线程,此选项的意思是说每个迭代都用相同的线程。在以前 3.x 和 4.x 版本的 JMeter 中,是没有这个选项的。创建好 1 个线程后,每次迭代都是用这个线程,直到测试结束。它的影响就是,比如登录,加了 HTTP Cookie 管理器以后,单个线程多次迭代(注意不是多个线程哦)登录用的都是相同的 Cookie。
5.x 版本加入了这个选项,可以控制每次迭代是否创建新的线程。同时在 HTTP Cookie 管理器也增加了一个选项,控制是否清除旧 Cookie.
默认这个 Same user on each iteration 的选项是勾选的。因为销毁和创建线程本身就会占用资源,可能会影响性能测试结果。
那么,结合本次的马拉松竞赛,这10000个人,(使用相同的cookie)可以想象成是一个人的克隆体或者分身的意思,他们都使用的同一个人的名字、信息、身份证号、相同的号码布去参加这次比赛。
六、Delay Thread creation until needed
意思:将线程创建延迟到需要时。(此处的延时,要区别于第七点中的延迟启动,如果还是不懂的话,请反复研读品味~~~或者评论区聊~~~)
线程的运行依赖于计算机的硬件资源。
勾选,例如50个线程Ramp-Up Period为10s,那么每隔1s为5个线程分配计算机的资源;
不勾选,测试计划开始后为所有线程分配计算机的资源。
实际应用中选择哪种都可以,不影响测试结果。有个印象就好。
七、Specify Thread lifetime![](https://img-blog.csdnimg.cn/7b3c0743b5884de6b0064913f8a90159.png)
Duration:持续时间,单位秒。Loop Count 勾选了 Infinite,才有作用。可以用其控制整个测试的持续时间。
可以理解为:不让这10000个人跑10次全程了,而是要让他们在规定的时间内一直跑下去。结合性能测试,对应的场景就是稳定性测试,让机器持续运行7*27小时。
Startup delay:启动延迟,单位秒。延迟到时间后再运行线程。
可以理解为:虽然裁判员的发令枪响了,但是因为其它原因(比如天气不好,哈哈哈,我也是瞎胡编的理由~~~),要求运动员们延迟一会儿出发。
对应到jmeter,就是当你点击了表示启动的那个绿色小三角形,不会马上发出请求,而是延迟一会儿,你才能看到发出的请求。
=========================================================================
今天的分享就到这里啦,我是致力于使用通俗易懂的例子让各位小伙伴们能够快速理解知识的杨同学,咱们下期再会。
望路过的客官们小手动一动,点赞收藏任选其一。也欢迎大家的交流互动,谢谢。