Jmeter(GUI模式)教程
前些天,领导让我做接⼝的压⼒测试。What??我从未接触过这⽅⾯,什么都不知道,⼀脸蒙。于是我从学习jmeter开始⼊⼿。
现在记录下来jmeter的使⽤步骤,希望能对⼤家有所帮助。
⼀、安装Jmeter
1、电脑安装Java,并配置环境变量,步骤见:
2、下载,解压到本地。
3、进⼊/Jmeter/bin,双击jmeter,打开软件。
jmeter
⼆、Jmeter⼯作原理
Jmeter可以作为Web服务器与浏览器之间的代理⽹关,以便捕获浏览器的请求和Web服务器的响应,如此就可以很容易的⽣成性能测试脚本。有了性能测试脚本,Jmeter就可以通过线程组来模拟真实⽤户对
Web服务器的访问压⼒。这与LoadRunner的⼯作原理基本⼀致。
⼯作原理
三、Jmeter操作步骤
Jmeter界⾯
1、测试计划
测试计划描述了Jmeter运⾏时将会执⾏的⼀系列步骤。⼀个完善的测试计划,会包含⼀个或多个线程组、逻辑控制器、采样器、、定时器、断⾔和配置元件
2、线程组
线程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。其他的测试元件可以被直接放在测试计划之下,这些测试元件对所有线程组都⽣效。线程组就像它的名称所描述的,被⽤来管理执⾏性能测试所需的Jmeter线程。⽤户通过线程组的控制⾯板可以:
· 设置线程数量
·
设置线程启动周期Period
· 设置执⾏测试脚本的循环次数
· 设置持续时间
· 设置启动延时时间
· 设置启动时间和结束时间
参数Ramp-Up Period 告诉Jmeter 达到最⼤线程数所需的时间。假定共有10个线程,Ramp-Up Period为100秒,那么Jmeter就会在100秒内启动这10个线程,并让它们运转起来。每⼀个测试线程都会在上⼀个线程启动10秒之后才开始运⾏。
注意⚠ :
参数Ramp-Up Period不能设定的太短,否则在测试初始阶段会给予服务器过⼤的压⼒。
建议⚠ :
初始值可以设定为Ramp-Up Period=总线程数。后续在根据实际情况适当增减。
设定测试运⾏的“启动时间”和“结束时间”,测试启动后会⼀直等待,直到⽤户设定的开始时间。测试运⾏期间,Jmeter会在每⼀次循环结束后,检查是否已经达到结束时间。如果已经达到了结束时间,Jmeter就会终⽌测试运⾏,否则Jmeter会继续下⼀个测试循环。(如需测试某个时间阶段的性能指标,则进⾏设置该部分。)
注意⚠ :
设置“启动延时”会使“启动时间”⽆效,⽽“持续时间”会使“结束时间”⽆效。
3、HTTP请求
配置元件
1)添加HTTP请求默认值
对于当前的测试计划,所有的请求都发往同⼀个服务器/IP,端⼝,路径,Parameters,Body等。可在HTTP请求默认值中设置。
步骤:右击⿏标-> 添加-> 配置元件-> HTTP请求默认值
HTTP请求默认值
2)添加HTTP信息头管理器
对于当前的测试计划,所有的请求信息头⼀致的。可在HTTP请求默认值中设置。
步骤:右击⿏标-> 添加-> 配置元件-> HTTP信息头管理器
HTTP信息头管理器
3)添加HTTP请求
步骤:右击⿏标-> 添加->Sampler->HTTP请求
添加HTTP请求
添加HTTP请求后,点击进⾏编辑,注意⚠ :若已经在HTTP请求默认值中设定了默认值,则此处不需要再次设定服务器名称/IP。
注意⚠ :若该测试计划,设置多个HTTP请求,则J meter会按照它们在测试树中出现的顺序发送请求。
编辑HTTP请求
4、
1)查看结果树
步骤:右击⿏标-> 添加->->查看结果树
perl下载安装教程查看结果树以树的⽅式来展⽰所有采样响应结果,测试⼈员可以通过它来查看任何采样的响应,除了展⽰响应结果之外,测试⼈员还能看到获取响应所消耗的时间,以及⼀些响应代码,需要注意⚠ :Request⾯板中显⽰Jmeter添加的头部,它不会展⽰由HTTP协议实现添加的头部
查看响应由多种⽅式,⽤户可以在左侧⾯板底部的下拉框选择
查看结果树
2)聚合报告
步骤:右击⿏标-> 添加->->聚合报告
聚合报告会为测试中每⼀个不同采样在表格中创建⼀⾏,针对每⼀个采样,它都会统计服务器响应信息,并提供请求数⽬、
Min,Max,Average,Error rate,Throughput(request/second)以及Thoughput(Kilobytes per second)等统计值。
聚合报告
Samples -- 本次场景中⼀共完成了多少个Transaction
Average -- 系列采样结果的平均响应时长
Median -- 统计意义上⾯的响应时间的中间值
90% Line -- 所有transaction中90%的transaction的响应时间都⼩于xx
95%Line -- 所有transaction中95%的transaction的响应时间都⼩于xx
99%Line -- 所有transaction中99%的transaction的响应时间都⼩于xx
Min -- 最⼩响应时间
Max -- 最⼤响应时间
Error -- 发⽣错误的⽐例
Troughput -- 吞吐量,单位:transaction/second
Kb/sec -- 该吞吐量以每秒Kilobytes来衡量
注意⚠ : 响应时间的单位均为ms
5、响应断⾔
断⾔被⽤于采样进⾏额外的检查,它会对相同作⽤域内的每个采样进⾏处理,为确保断⾔仅⽤于特定的采样。可针对主采样,⼦采样,⼆者同时施加特定的断⾔或者JMeter变量选项。
步骤:右击⿏标-> 添加->断⾔>响应断⾔
模式字符串包括:
· Contains,Matches --Perl5风格的正则表达式。
· Equals,Substring --纯⽂本,区分⼤⼩写。
响应断⾔
四、压⼒测试
1)压⼒测试分两种场景:
⼀种是单场景,压⼀个接⼝的;
第⼆种是混合场景,多个有关联的接⼝。
压测时间,⼀般场景都运⾏10-15分钟。如果是疲劳测试,可以压⼀天或⼀周,根据实际情况来定。
2)压测设置:
线程数:并发数量,具体说是⼀次存在多少⽤户同时访问。可呈递增状态添加,并到最⼤值。
Rame-Up Period(in seconds):表⽰JMeter每隔多少秒发动并发。初始值可以设定为Ramp-Up Period=总线程数。后续在根据实际情况适当增减。
循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。
运⾏⽹络:最好设置与服务器在同⼀⽹络,降低因⽹速问题导致的结果不准确。
3)压测结果查看:
运⾏完后,聚合报告会显⽰压测的结果。主要观察Samples、Average、error、Throughput。
Samples:表⽰⼀共发出的请求数
Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)
Error%:测试出现的错误请求数量百分⽐。若出现错误就要看服务端的⽇志,配合开发查定位原因
Throughput:简称tps,吞吐量,默认情况下表⽰每秒处理的请求数,也就是指服务器处理能⼒,tps越⾼说明服务器处理能⼒越好。
4)压测结果的分析
1、压测结束,登陆相应的web服务器查看CPU等性能指标,进⾏数据的分析;
2、不断的增加并发数,加到tps达到⼀定值开始出现下降,那么那个值就是最⼤的tps;
3、不断增加并发数,达到⼀个值后,服务器不断出现请求超时,则可认为该值为最⼤的并发数;
4、确定允许错误率的范围,与当前的错误率进⾏⽐较;以上
如果帮到你了,就点个赞吧~~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。