Jmeter(GUI模式)教程

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 前些天,领导让我做接口的压力测试。What??我从未接触过这方面,什么都不知道,一脸蒙。于是我从学习jmeter开始入手。现在记录下来jmeter的使用步骤,希望能对大家有所帮助。一、安装Jmeter1、电脑安装Java,并配置环境变量,步骤见:链接2、下载Jmeter,解压到本地。

前些天,领导让我做接口的压力测试。What??我从未接触过这方面,什么都不知道,一脸蒙。于是我从学习jmeter开始入手。

现在记录下来jmeter的使用步骤,希望能对大家有所帮助。


一、安装Jmeter

1、电脑安装Java,并配置环境变量,步骤见:链接

2、下载Jmeter,解压到本地。

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)查看结果树

步骤:右击鼠标-> 添加->监听器->查看结果树

查看结果树以树的方式来展示所有采样响应结果,测试人员可以通过它来查看任何采样的响应,除了展示响应结果之外,测试人员还能看到获取响应所消耗的时间,以及一些响应代码,需要注意️: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、确定允许错误率的范围,与当前的错误率进行比较;


以上

如果帮到你了,就点个赞吧~~

 

作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
Windows
jmeter--non GUI
jmeter--non GUI
|
XML Java 测试技术
在非GUI模式下运行JMeter的三种方法
在非GUI模式下运行JMeter的三种方法
805 0
在非GUI模式下运行JMeter的三种方法
|
BI 测试技术 Windows
|
测试技术
Jmeter5.3非GUI模式,从配置到导出报告问题整理
Jmeter5.3非GUI模式,从配置到导出报告问题整理
540 0
Jmeter5.3非GUI模式,从配置到导出报告问题整理
|
Java BI 测试技术
Jmeter系列(40)- 详解 Jmeter CLI 模式
Jmeter系列(40)- 详解 Jmeter CLI 模式
292 0
Jmeter系列(40)- 详解 Jmeter CLI 模式
|
Java 物联网 测试技术
MQTT压力测试工具之JMeter插件教程
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)主要用于移动Push,移动IM,物联网M2M,物联网采集等,这些应用场景的特点是客户端的连接设备数比较多,那么如何在系统上线之前验证系统能否承受预先设计的压力呢?
12862 0
|
Java
JMeter GUI切换默认语言
临时切换 此方法只能临时切换语言,当关闭Jmeter重新打开时,又会变为默认的英语; 永久切换 找到JMeter本机安装路径,进入bin/目录,打开jmeter.properties 文件,找到以下配置代码并修改如下: #Preferred GUI language. Comment out to use the JVM default locale's language. #language=en language=zh_CN 此时再打开Jmeter,默认的语言就会永久变为简体中文了。
1363 0
|
Web App开发 测试技术 BI
|
Web App开发 测试技术
jmeter测试教程
http://www.cnblogs.com/TankXiao/p/4045439.html
979 0
|
监控 Shell 测试技术