Jmeter(GUI模式)教程
前些天,领导让我做接口的压力测试。What??我从未接触过这方面,什么都不知道,一脸蒙。于是我从学习jmeter开始入手。
现在记录下来jmeter的使用步骤,希望能对大家有所帮助。
一、安装Jmeter
1、电脑安装Java,并配置环境变量,步骤见:链接
2、下载Jmeter,解压到本地。
3、进入/Jmeter/bin,双击jmeter,打开软件。
二、Jmeter工作原理
Jmeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,如此就可以很容易的生成性能测试脚本。有了性能测试脚本,Jmeter就可以通过线程组来模拟真实用户对Web服务器的访问压力。这与LoadRunner的工作原理基本一致。
三、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请求默认值
2)添加HTTP信息头管理器
对于当前的测试计划,所有的请求信息头一致的。可在HTTP请求默认值中设置。
步骤:右击鼠标-> 添加-> 配置元件-> HTTP信息头管理器
3)添加HTTP请求
步骤:右击鼠标-> 添加->Sampler->HTTP请求
添加HTTP请求后,点击进行编辑,注意⚠️:若已经在HTTP请求默认值中设定了默认值,则此处不需要再次设定服务器名称/IP。
注意⚠️:若该测试计划,设置多个HTTP请求,则J meter会按照它们在测试树中出现的顺序发送请求。
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、确定允许错误率的范围,与当前的错误率进行比较;
以上
如果帮到你了,就点个赞吧~~
Jmeter(GUI模式)教程的更多相关文章
- 非 GUI 模式运行 JMeter 压力测试
非 GUI 模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用命令:jmeter -n -t <testplan filename> -l <lis ...
- 非GUI 模式运行 jmeter 压力测试
非 GUI 模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用命令:jmeter -n -t <testplan filename> -l <lis ...
- 性能测试之JMeter远程模式
性能测试之JMeter远程模式 事实上,你的JMeter客户端机器是不能表现出完美的压力请求,来模拟足够多的用户或由于网络限制去向服务施加压力,一种解决方法是通过一个JMeter去控制多个/远程JMe ...
- Jmeter(非GUI模式)教程
前言 使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.优点如下:1.节约系统资源:无需启动界面,节约系统资源 2.便捷快速:仅需启动命令行,输入命令便可执行 ...
- Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)
性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...
- Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS
非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...
- 使用非 GUI 模式运行 JMeter 压力测试
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...
- Jmeter非GUI模式运行
非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter -n -t 脚本文件路径 -l 结果输出文件路径 -j 日志文 ...
- JMeter采用NON GUI模式时如何记录并查看错误
在GUI模式下执行JMeter测试时,我们可以通过添加View Results Tree组件来查看JMeter请求的各类详情.那如果在正式测试场景中,当我们采用NON GUI模式时,遇到了断言或其他错 ...
- Jmeter非GUI模式启动
首先我们需要了解,GUI和非GUI模式启动Jmeter对测试的影响:Jmeter可视化界面及监听器展示结果需要消耗负载资源,从而导致,在大并发的情况下GUI方式会导致负载机资源紧张,对性能造成影响 e ...
随机推荐
- FUSE 用户空间文件系统 (Filesystem in Userspace)
FUSE 仓库 Wiki FUSE 性能评测 关于Fuse文件系统: FUSE (Filesystem in Userspace) is an interface for userspace prog ...
- js,ajax,layer笔记(弹出层,在弹出一个弹框)
整体认识: 因为作用域的问题,js 在页面初次加载时已近加载好了,所以要有第二次弹窗的效果,必须得在第一次成功之后再次让他加载js 代码: /*shaun*/showdetailsPag: funct ...
- 数据可视化:CSV格式,JSON格式
下载CSV格式数据,进行可视化 csv.reader()创建一个与文件有关联的阅读器(reader)对象,reader处理文件中的第一行数据,并将每一项数据都存储在列表中 head_row = nex ...
- MySQL基本简单操作03
MySQL基本简单操作 现在我创建了一个数据表,表的内容如下: mysql> select * from gubeiqing_table; +----------+-----+ | name | ...
- UVA12166-Equilibrium Mobile
Problem UVA12166-Equilibrium Mobile Accept:529 Submit:4330 Time Limit: 3000 mSec Problem Descriptio ...
- Linux操作系统中打开文件数量的查看方法
Linux操作系统中打开文件数量的查看方法ulimit -n 4096也就是限制用户的最大文件打开数为4096个 在网上查了关于怎么查看文件打开数的文章大致有两种说法/proc/sys/fs/file ...
- Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)
题意:a1=0;a2=1;a3=2; a(n)=a(n-1)+a(n-2)+a(n-3); 求a(n) 思路:矩阵快速幂 #include<cstdio> #include<cst ...
- 【转】android IDE——通过DDMS查看app运行时所占内存情况
在Android内存优化方面,我们不可能做到没有大内存的占用情况. 所以有时候要清楚我们的app到底占用了多少内存,哪一步操作占用了多少的内存. 这时候,android的ddms中提供了一个工具,是可 ...
- day04--流程控制之if
编程的目的是让计算机像人脑一样工作,因此就需要让计算机具备人脑一样的逻辑思维,这里就需要用到计算机语言的流程控制: 流程控制之if......else 语法1: if 条件: 代码块 # 一组代码块的 ...
- centos 6 中恢复删除的文件
CentOS 6 安裝 extundelete:: ##############测试的时候需要2块硬盘############### yum install e2fsprogs-devel e2fsp ...