网易首页 > 网易号 > 正文 申请入驻

Jmeter你所不知道的技巧!Jmeter使用技巧集锦

0
分享至

JMeter是一个流行的用于负载测试的开源工具,具有许多有用的功能元件,如线程组(threadgroup),定时器(timer),和HTTP取样(sampler)元件。本文是对JMeter用户手册的补充,而且提供了关于使用Jmeter的一些模拟元件开发质量测试脚本的指导。

本文同时也讨论了一项重要的内容:在指定了精确的响应时间要求后,如何来校验测试结果,笔者是在采用了置信区间分析这种严格的统计方式的情况下应如何操作。请注重,我假定本文的读者们了解关于Jmeter的基础知识,本文的例子基于Jmeter2。0。3版。

确定一个线程组的ramp-upperiod(Determine)

Jmeter脚本的第一个要素是线程组(ThreadGroup),因此首先让我们往返顾一下。正如图一所示,线程组需要设置以下参数:

·线程数量。

·ramp-upperiod。

·运行测试的次数。

·启动时间:立即或者预定的时间,假如是后者,线程组所包含的元素也要指定这个起止时间。

  图1:JMeter线程组(JMeterThreadGroup)

每个线程均独立运行测试计划。因此,线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。

参数ramp-upperiod用于告知JMeter要在多长时间内建立全部的线程。默认值是0。假如未指定ramp-upperiod,也是说ramp-upperiod为零,JMeter将立即建立所有线程,假设ramp-upperiod设置成T秒,全部线程数设置成N个,JMeter将每隔T/N秒建立一个线程。

线程组的大部分参数是不言自明的,只有ramp-upperiod有些难以理解,因为如何设置适当的值并不轻易。首先,假如要使用大量线程的话,ramp-upperiod一般不要设置成零。因为假如设置成零,Jmeter将会在测试的开始建立全部线程并立即发送访问请求,这样一来很轻易使服务器饱和,更重要的是会隐性地增加了负载,这意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值,可以通过Jmeter的聚合报告监听器看到这种现象。

这种异常不是我们需要的,因此,确定一个合理的ramp-upperiod的规则是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。

基于同样的原因,过大的ramp-upperiod也是不恰当的,因为将会降低访问峰值的负载,换句话说,在一些线程还未启动时,初期启动的部分线程可能已经结束了。

那么,如何检验ramp-upperiodI太小了或者太大了呢?首先,推测一下平均点击率并用总线程除点击率来计算初始的ramp-upperiod。例如,假设线程数为100,估计的点击率为每秒10次,那么估计的理想ramp-upperiod是100/10=10秒。那么,应怎样来提出一个合理的估算点击率呢?没有什么好办法,必须通过运行一次测试脚本来获得。

其次,在测试计划(testplan)中增加一个聚合报告监听器,如图2所示,其中包含了所有独立的访问请求(一个samplers)的平均点击率。第一次取样的点击率(如http请求)与ramp-upperiod和线程数量密切相关。通过调整ramp-upperiod可以使首次取样的奠基率接近平均取样的点击率。

  图2:JMeter聚合报告

第三,查验一下Jmeter日志(文件位置:JMeter_Home_Directory/bin)的后一个线程开始时第一个线程是否真正结束了,二者的时间差是否正常。

总之,是否能确定一个适当的ramp-uptime取决于以下两条规则:

·第一个取样器的点击率(hitrate)是否接近其他取样器的平均值,从而能否避免ramp-upperiod过小。

·在后一个线程启动时,第一个线程是否在真正结束了,好二者的时间要尽可能的长,以避免ramp-upperiod过大。

有时,这两条规则的结论会互相冲突。这意味着无法找到同时满足两条规则的合适的ramp-upperiod。糟糕的测试计划通常会导致这些问题,这是因为在这样的测试计划里,取样器将不能充分地采集数据,可能因为测试计划执行时间太短并且线程会很快的运行结束。测试交流资料共享群:壹零壹柒伍叁玖贰玖零

用户思考时间(Userthinktime),定时器,和代理服务器(PRoxyserver)

在负载测试中需要考虑的的一个重要要素是思考时间(thinktime),也是在两次成功的访问请求之间的暂停时间。有多种情形挥发导致延迟的发生:用户需要时间阅读文字内容,或者填表,或者查找正确的链接等。未认真考虑思考时间经常会导致测试结果的失真。例如,估计数值不恰当,也是被测系统可以支持的多用户量(并发用户)看起来似乎要少一些等。

当我们进入正在的负载测试后,如果发现事务控制器的时间比所有子组件的时间之和差距过大,那么说明Jmeter本身的性能出问题了。可以考虑通过如下三种方式进行处理:

一、修改Jmeter.bat文件,调整JVM参数,将heap和permsize值适当的设置大一点。

二、联机负载,减少单台机器上的负载线程数。

三、采用命令模式运行测试。

Jmeter提供了一整套的计时器(timer)来模拟思考时间(thinktime),但是仍然存在一个问题::如何确定适当的思考时间呢?幸运的是,JMeter提供了一个不错的答案:使用JMeterHTTP代理服务器(ProxyServer)元件。

代理服务器会记录在使用一个普通的浏览器(如Firefox或InternetEXPlorer)浏览一个web应用时的操作。另外,JMeter在记录操作的同时会建立一个测试计划(testplan)。这个功能能提供以下便利:

不必手工建立HTTP访问请求,尤其是当要设置一些令人乏味的参数时(然而,非英文的参数也许不能正常工作)。JMeter将会录制包括隐含字段(hiddenfields)在内的所有内容。

在生成的测试计划中,Jmeter会包含浏览器生成的所有的HTTP报头,如User-Agent(e。g。,Mozilla/4。0),或AcceptLanguage(e。g。,zh-tw,en-us;q=0。7,zh-cn;q=0。3)等。

JMeter会根据设置在录制操作的同时建立一些定时器,其延迟时间是完全根据真实的操作来设置的

现在让我们来看一下如何配置Jmeter的录制功能。在JMeter的控制台上,在工作台(WorkBench)元件上单击右键,然后选择”addtheHTTPProxyServer“。注重是在WorkBench上单击右键而不是在TestPlan上,因为现在是要为记录操作进行配置而不是要运行测试计划。HTTPProxyServer的实现原理是通过配置浏览器的代理服务器而使所有的访问请求通过JMeter发送(,因而被Jmeter把访问过程录制下来)。

HTTP代理服务器(HTTPProxyServer)元件的一些参数必须被配置:

端口(port):代理服务器的监听端口

目标控制器(TargetController):是代理用于存储生成的数据的控制器,默认情况下,JMeter将会在当前的测试计划中找一个记录用的控制器用于存储,此外也可以在下拉菜单中选择任意控制起来存储,通常默认值可以了。

分组(Grouping):确定在测试计划中如何来为生成的元件分组。有多个选项,一般可以选择“只存储每个组的第一个样本”,否则,将会原样录制URLs,包括包含图像和javascripts脚本的页面。当然也可以尝试一下默认值“不对样本分组”("Donotgroupsamples"),来看一下JMeter建立的原版的测试计划。

包含模式(PatternstoInclude)和排除模式(PatternstoExclude):帮助过滤一些不需要的访问请求。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
7:0!梅西彻底甩开C罗,德转列近三年冠军对比,葡萄牙球星太尴尬

7:0!梅西彻底甩开C罗,德转列近三年冠军对比,葡萄牙球星太尴尬

祥谈体育
2024-04-19 15:01:31
雷军上海车展视频被扒,劳斯莱斯车内疯狂拍照,评论区炸锅了

雷军上海车展视频被扒,劳斯莱斯车内疯狂拍照,评论区炸锅了

户外小阿隋
2024-04-19 01:02:30
闹大了!交警查酒驾遇到纪委的人!直言:纪委咋了,我查的就是你

闹大了!交警查酒驾遇到纪委的人!直言:纪委咋了,我查的就是你

飞哥AI矩阵
2024-04-18 16:08:21
济宁近百亿,青岛独跌3%!山东各地2024年1-2月财政收入排行出炉

济宁近百亿,青岛独跌3%!山东各地2024年1-2月财政收入排行出炉

水又木二
2024-04-19 11:34:59
现实版《何以琛萧默》在西安寺庙真实上演,网友大呼在一起在一起

现实版《何以琛萧默》在西安寺庙真实上演,网友大呼在一起在一起

娱乐圈酸柠檬
2024-04-19 07:50:15
“雷军也得输给你们”,大学生发明自嘲简历,主打“未来可欺”

“雷军也得输给你们”,大学生发明自嘲简历,主打“未来可欺”

熙熙说教
2024-04-17 16:10:19
耻辱!日媒评世界杯:张本美和淘汰王艺迪,证实国乒弃用决定明智

耻辱!日媒评世界杯:张本美和淘汰王艺迪,证实国乒弃用决定明智

室内设计师阿喇
2024-04-19 12:51:39
美艳丈母娘看上女婿,引发的荒唐事件!引起大众关注。

美艳丈母娘看上女婿,引发的荒唐事件!引起大众关注。

今日搞笑分享
2024-04-17 07:55:05
科尔:你得做多精明的交易才能够得到波杰姆和TJD这样的球员

科尔:你得做多精明的交易才能够得到波杰姆和TJD这样的球员

直播吧
2024-04-19 12:08:14
汪小菲不满母亲靠爆家庭丑闻来维持直播,张兰:你以为我容易吗

汪小菲不满母亲靠爆家庭丑闻来维持直播,张兰:你以为我容易吗

娱乐百灵鸟V3
2024-04-17 15:15:03
美国杨毅:如果詹皇击败掘金肯定湖人夺冠 他有可能超越乔丹

美国杨毅:如果詹皇击败掘金肯定湖人夺冠 他有可能超越乔丹

818体育
2024-04-19 13:47:53
韩媒:今晚韩国国奥若击败中国将提前出线,要多刷进球力争头名

韩媒:今晚韩国国奥若击败中国将提前出线,要多刷进球力争头名

直播吧
2024-04-19 08:56:49
总部迁回赤峰,高管们离职了

总部迁回赤峰,高管们离职了

人才搜寻
2024-04-17 07:59:18
G1深圳87-124不敌辽宁,来看赛后郑永刚与萨林杰说了什么?

G1深圳87-124不敌辽宁,来看赛后郑永刚与萨林杰说了什么?

篮球资讯达人
2024-04-19 03:08:01
两翼齐飞真的猛!药厂翼卫:格里马尔多11球16助,弗林蓬13球11助

两翼齐飞真的猛!药厂翼卫:格里马尔多11球16助,弗林蓬13球11助

直播吧
2024-04-19 11:58:06
曼联出1亿天价,又买水货前锋?周薪从3.6万涨至25万,超越B费

曼联出1亿天价,又买水货前锋?周薪从3.6万涨至25万,超越B费

贝塔说体育
2024-04-19 13:44:36
TVB新一代咪神“胸降”《爱回家》演性感秘书,合家欢玩倒奶挑机高海宁

TVB新一代咪神“胸降”《爱回家》演性感秘书,合家欢玩倒奶挑机高海宁

TVB剧评社
2024-04-19 00:06:39
“小米SU7自动泊车撞墙”后续:已与车主达成和解

“小米SU7自动泊车撞墙”后续:已与车主达成和解

三言科技
2024-04-17 08:54:04
常州楼市全军覆没,常州房价连跌,常州二手房从3.5万套增加4.5万

常州楼市全军覆没,常州房价连跌,常州二手房从3.5万套增加4.5万

有事问彭叔
2024-04-18 16:24:45
“马赛克可不能乱打,尤其对女孩子们,颜值是不是太重要了?”哈哈哈

“马赛克可不能乱打,尤其对女孩子们,颜值是不是太重要了?”哈哈哈

水泥土的搞笑
2024-04-18 07:05:09
2024-04-19 15:20:49
软件测试技术分享
软件测试技术分享
分享测试技术需要资料可以留言
16文章数 8关注度
往期回顾 全部

科技要闻

Pura 70卖爆,华为要夺回苹果拿走的一切

头条要闻

为完成"市场主体倍增"要求 有村支书办理20张营业执照

头条要闻

为完成"市场主体倍增"要求 有村支书办理20张营业执照

体育要闻

安息吧勇士王朝,2013-2023

娱乐要闻

北影节开幕之夜,内娱女星千娇百媚

财经要闻

围猎三丰智能的神秘基金设骗局转移资产

汽车要闻

风神L7预售 东风汽车北京车展阵容公布

态度原创

时尚
亲子
本地
数码
公开课

到了夏季,一定要试试“清爽感”穿搭!优雅又减龄,越看越美

亲子要闻

一时大意给整个家庭带来的,都可能是一个永远无法弥补的后果

本地新闻

春色满城关不住|千阳春日限定美景上线了!

数码要闻

2024 年 Q1 中国显示器市场 TOP10 出炉:AOC、HKC、小米销量前三

公开课

睡前进食会让你发胖吗?

无障碍浏览 进入关怀版