首页 > 其他分享 > JMeter 性能测试基本操作

JMeter 性能测试基本操作

时间:2023-09-11 15:38:42浏览次数:49  
标签:请求 并发 时间 响应 线程 测试 基本操作 JMeter


1.常用压测工具

  1. Apache的ab压力测试
  2. Nginter 韩国研发
  3. Arthas 阿里测试工具
  4. JMeter : 可视化的测试工具

注意:测试容易受到网络抖动的干扰,服务器硬件配置环境影响;因此压力测试一般情况下,都应该在内网进行,不在外网去测试;

2.压测机环境准备:JMeter部署

官网:https://jmeter.apache.org/
教程:http://www.jmeter.com.cn/2747.html

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试 静态和动态资源 ,例如静态文件、Java 小服务程序CGI 脚本Java 对象数据库FTP 服务器 , 等等。

2.1 JMeter下载安装&启动&配置

jemeter镜像下载地址:jmeter.apache.org/

windows可以使用图形化界面进行测试,linux建议使用命令模式进行测试。但是为了测试的便捷性,我们使用jmeter的图形化界面进行压力测试。

1 )使用windows方法进行启动

 JMeter 性能测试基本操作_响应时间

2 )配置外观

 JMeter 性能测试基本操作_压测_02

3 )中文简体

需要修改jmeter.properties

 JMeter 性能测试基本操作_执行时间_03

 JMeter 性能测试基本操作_压测_04

language=zh_CN

好了,jmeter启动使用是很简单的。

2.2 入门案例

疑问:SpringBoot理论上线?200TPS

为什么单体的SpringBoot并发怎么这么高?9000+

1 )新建压力测试

 JMeter 性能测试基本操作_执行时间_05

2 )配置线程组:

 JMeter 性能测试基本操作_执行时间_06

线程属性说明:ramp-up背后含义不好理解,案例做完有详细解释

  • 线程数: 5000 , 线程数量
  • ramp-up:表示在指定时间之内把这些线程全部启动起来。 这里表示 5s以内把 5000 个线程全部启动起来。
  • 循环次数:20 ,表示把 5000 thread /5s 循环 20 次

3 )配置HTTP接口:

http://localhost:8080/user/findByUsername/llsydn

 JMeter 性能测试基本操作_响应时间_07

 JMeter 性能测试基本操作_执行时间_08

选择Java,选择keepalive方式,使用长连接的方式,防止频繁的建立连接,关闭连接消耗性能,这样我们的压测的性能消耗就会有部分消耗在建立,关闭连接的网络消耗上,这样会导致我们的压测数据不准确

4 )配置结果监听:

配置监听器:监听压测结果【聚合报告和汇总结果很类似,看一个就行】

  1. 聚合报告:查询结果信息聚合汇总,例如样本、平均值、通吐量、最大值、最小值...
  1. 图像结果:分析了所有请求的平均值、终止、偏离值和通吐量之间的关系。
  1. 汇总结果:汇总压测结果
  1. 汇总图:将压测结果以图像形式展示
  1. 察看结果树:记录每一次压测请求

 JMeter 性能测试基本操作_响应时间_09

添加方法,按照上图所示即可。

 JMeter 性能测试基本操作_压测_10

2.2.3、压测结果解释

1 )聚合报告:

 JMeter 性能测试基本操作_执行时间_11

  • 样本(sample): 发送请求的总样本数量
  • 响应时间【单位ms】:
  • 平均值(average):平均的响应时间
  • 中位数(median): 中位数的响应时间,50%请求的响应时间
  • 90%百分位(90% Line): 90%的请求的响应时间,意思就是说90%的请求是<=1765ms返回,另外10%的请求是大于等于1765ms返回的。
  • 95%百分位(95% Line): 95%的请求的响应时间,95%的请求都落在1920ms之内返回的
  • 99%百分位(99% Line): 99%的请求的响应时间
  • 最小值(min):请求返回的最小时间,其中一个用时最少的请求
  • 最大值(max):请求返回的最大时间,其中一个用时最大的请求
  • 异常(error): 出现错误的百分比,错误率=错误的请求的数量/请求的总数
  • 吞吐量TPS(throughout): 吞吐能力,这个才是我们需要的并发数!!!
  • Received KB/sec----每秒从服务器端接收到的数据量
  • Sent KB/sec----每秒从客户端发送的请求的数量

2 )汇总报告

 JMeter 性能测试基本操作_响应时间_12

  • 样本(sample): 发送请求的总样本数量
  • 响应时间【单位ms】:
  • 平均值(average):平均的响应时间
  • 最小值(min):请求返回的最小时间,其中一个用时最少的请求
  • 最大值(max):请求返回的最大时间,其中一个用时最大的请求
  • 标准偏差:度量响应时间分布的分散程度的标准,衡量响应时间值偏离平均响应时间的程度。标准偏差越小,偏离越少,反之亦然。
  • 异常(error): 出现错误的百分比,错误率=错误的请求的数量/请求的总数
  • 吞吐量TPS(throughout): 吞吐能力,这个才是我们需要的并发数
  • 每秒接收 KB/sec----每秒从服务器端接收到的数据量
  • 每秒发送KB/sec----每秒从客户端发送的请求的数量
  • 平均字节数

3 )察看结果树:

记录了样本中的每一次请求

 JMeter 性能测试基本操作_执行时间_13

4 )图形结果

分析了所有请求的平均值、终止、偏离值和通吐量之间的关系

  • 横坐标:为请求数量,单位个数
  • 纵坐标:响应时间,单位ms

 JMeter 性能测试基本操作_执行时间_14

2.2.4、线程属性参数原理

线程属性参数原理结论:

  • 线程数设置:根据项目并发需求确定
  • Ramp-Up Period设置:不宜过小也不宜设置过大,经验的做法是设置ramp-up period等于总线程数
  • 循环次数:决定测试执行时间

1 )参数基本概念

线程数:

  • 线程组常用来模拟并发用户访问,每个线程均独立运行测试计划。

循环次数:循环执行多少次操作

  • 循环次数表示了循环执行多少次操作!循环次数直接决定整个测试单个线程的执行时间,和整体测试执行时间。
  • 单线程执行时间 = 单请求平均响应时间 * 循环次数
  • 整个测试耗时 = 单线程执行时间 + (Ramp-Up - Ramp-Up / 线程数)

Ramp-Up:建立全部线程耗时

  • Ramp-Up Period(in-seconds)代表隔多长时间执行, 0 代表同时并发
  • 用于告知JMeter 要在多长时间内建立全部的线程,默认值是 0 。

2 )为什么需要有Ramp-Up Period,立刻创建出来所有的线程不是更好?

  • 目的是为了模拟大部分网站的真实用户并发场景
  • 对于绝大多数的网址或应用,更真实的情况是并发用户逐渐递增,而不是从一开始便立即有大量并发的用户,“ramp-up period”概念的引入可以覆盖测试这个场景;


标签:请求,并发,时间,响应,线程,测试,基本操作,JMeter
From: https://blog.51cto.com/u_16256929/7436022

相关文章

  • Django 测试是否安装成功
    在我们安装好django后,我们不要急于去开发,我们首先要清楚我们的django是否安装成功。在这里要注意:有些童鞋反应安装不成功,大多数原因是:权限问题,当前用户的权限不够。django安装过程中会在/usr/local/lib/中写入文件,所以安装前要确认当前用户有对lib目录的操作权限。这样才能确保成功......
  • 软件测试|Python数据可视化神器——pyecharts教程(七)
    pyecharts绘制炫酷日历图什么是日历图日历图(CalendarChart)是一种用于可视化时间序列数据的图表类型。它以日历的形式展示数据,将时间与数据值结合在一起,使得数据的周期性和趋势在日历的视觉布局中更加直观和易于理解。在日历图中,每个单元格代表一个日期(通常是天),并用不同的颜色、大......
  • 软件测试|好用的pycharm插件推荐(二)—— JSON Parser
    简介PyCharm是一款强大的Python集成开发环境(IDE),它提供了许多插件来增强开发体验。其中一个非常有用的插件是"JSONParser",它允许你在PyCharm中轻松解析和处理JSON数据。在本文中,我们将详细介绍如何安装和使用PyCharmJSONParser插件。安装JSONParser插件打开PyCharmIDE,并点击顶......
  • CtsKeystoreTestCases 测试--和keybox相关的几条用例
    AttestationPerformanceTest测试方式:adbshellaminstrument-r-eclassandroid.keystore.cts.AttestationPerformanceTest-wandroid.keystore.cts/androidx.test.runner.AndroidJUnitRunner需要预置keymasterkey,同时设备需处于locked状态。两个fail项:Therewere2fai......
  • 软件测试|好用的pycharm插件推荐(三)——Rainbow Brackets
    简介我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。这个时候要是有一款工具能够让我们一眼就看出代码从哪个括号开始,到哪个反括号结束,无疑对我们会有很大帮助。PyCharmRainbowBracket......
  • Chromium 工程源码是如何测试的
    Chromium这样庞大的工程,涉及超多的模块依赖,如何保证代码质量?源码中随处可见xxx_unittest.cc和xxx_fuzzer.cc这样的文件,它们是如何组织的呢?项目的每一个Commit需要执行哪些测试,流程是什么?Chromium做了哪些基础的工作支持繁琐又重要的测试工作,我们是否可以借鉴用到自己的项目......
  • HTTP接口测试
    @Author:BasilGuo@Date:Feb.20,2021@Description:HTTP接口测试@Keyword:test,httpinterface@Type:tutorial学习方式:先方法,后工具(接口测试常用工具有SoupUI、JMeter)学习建议:了解接口是做什么的。理解接口的业务处理逻辑。熟悉接口核心的三组件:地址、入参、返......
  • 我的美妆产品被抽查HRIPT/RIPT斑贴测试COA分析和BCOP认证?
    现在化妆品产品涉及比较广,许多卖家再上架亚马逊平台的时候就会忽略一点,就是没有做相对应的认证,导致产品被下架或者停止销售。关于化妆品护肤品产品我们需要做HRIPT/RIPT斑贴测试!COA分析证书和BCOP认证!COA,HRIPT,BCOP这三个有什么区别?COA、HRIPT和BCOP是三种不同的测试和认证:COA:分析证......
  • 粉底液、口红、睫毛膏,眼膜等护肤品和彩妆上架亚马逊需要做什么认证?HRIPT/RIPT测试,斑贴
    亚马逊要求化妆、美容类睫毛膏、眼膜、足贴、假睫毛、洗发水、美甲套装等HRIPT/RIPT+COA测试,如果是眼睛这个部位使用的话还需要出示BCOP认证为了确保在使用产品或原料后不会产生潜在的刺激或过敏。亚马逊要求化妆品,美容产品,指甲胶等需要做HRIPT/RIPT多次重复封闭性皮肤斑贴测......
  • linux中如何安装jmeter
    1.在服务器上找个路径,将apache-jmeter的压缩包上传至该路径下。 2.解压该压缩包  3.编辑/etc/profile文件,添加环境变量vi/etc/profile在文件最后添加如下内容:(解压后的jmeter路径需跟随实际存放位置改变)exportJMETER_HOME=/opt/jmeter/apache-jmeter-5.2exportP......