jmeter性能测试基础实战

huainanhai huainanhai     2023-04-30     799

关键词:

一、前言

  “纸上得来终觉浅,绝知此事要躬行。”学习了理论知识,要实操起来。本文主要介绍jmeter性能测试基础实战。
二、Jmeter 性能测试基础实战
  1.测试需求:测试20个用户访问https://www.cnblogs.com/huainanhai/ 在负载达到30 QPS时的平均响应时间。
  QPS: Query Per Second每秒查询率:是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的性能经常用每秒查询率来衡量。
  2.测试步骤:
  第一步:添加线程组
  线程组主要包含三个参数:线程数、准备时长( Ramp-Up Period(in seconds) ).循环次数。
  • 线程数: 虚拟用户数。一个虚拟用户占用一一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  • 准备时长为10 , 那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
  • 循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为5,那么每个线程发送5次请求。总请求数为20*5=100。如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本

  第二步:增加HTTP请求

  一个HTTP请求有着许多的配置参数,下面将详细介绍:

  ?名称: 本属性用于标识一个取样器,建议使用一个有意义的名称。

  ?注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

  ?服务器名称或IP : HTTP请求发送的目标服务器名称或IP地址。

  ?端口号:目标服务器的端口号,默认值为80。

  ?Timeouts ( milliseconds) : 设置请求和响应的超时时间

  ?协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https , 默认值为http。

  ?方法:发送HTTP请求的方法,可用方法包括GET. POST. HEAD. PUT. OPTIONS. TRACE、DELETE等。

  ?Content encoding : 内容的编码方式,默认值为iso8859

  ?路径:目标URL路径(不包括服务器地址和端口)

  ?自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter自动重定向到新的页面。

  ?Use keep Alive :当该选项被选中时, jmeter和目标服务器之间使用Keep-Alive方式(又称持久连接、连接重用)进行HTTP通信,默认选中。

  ?Use multipart/form-data for HTTP POST : 当发送HTTP POST请求时,使Use multipart/form-data方法发送,默认不选中。

  ?同请求一起发送参数(Send Parameters With the Request):在请求中发送URL参数。对于带参数的URL , jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中, 表中的每一行是一 个参数值对(对应URL中的名称1=值1)。

  ?同请求-一起发送文件:在请求中发送文件,通常HTTP文件上传行为可以通过这种方式模拟。

  ?从HTML文件获取所有有内含的资源:当该选项被选中时, jmeter在发出HTTP请求并获得

响应的HTML文件内容后,还对该HTML进行分析并获取HTML中包含的所有资源(图片、flash等) , 默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded的URLs must match文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。

  ?用作监视器 :此取样器被当成监视器,在Monitor Results Listener中可以直接看到基于该取样器的图形化统计信息。默认为不选中。

  ?Save response as MD5 hash? : 选中该项,在执行时仅记录服务端响应数据的MD5值,而.不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

  tips:默认时间单位是毫秒;报告输出文件后缀 .jtl

  第三步:设置QPS限制

  Jmeter提供了一一个非常有用的定时器,称为Constant Throughput Timer ( 常数吞吐量定时器) ,该定时器可以方便地控制给定的取样器发送请求的吞吐量。

  Constant Throughput Timer的主要属性介绍:

  Target throughput ( in samples per minute ) :目标吞吐量。注意这里是每分钟发送的请求数,实际填的数值为: 60*QPS,其次Calculate Throughput based on : 有5个选项,分别是:

  • This thread only : 控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput 乘以该线程的数量。
  • All active threads :设置的target Throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。
  • All active threads ( shared ) :与All active threads的选项基本相同,唯一 的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
  • 一个活跃线程 上,当测试计划中只有一个线程组时 , 该选项和All active threads选项的效果完全相同。
  • All cative threads in current thread grotmy ( shared ) :与All active threads in current thread group基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

  30 QPS换算后,Target throughput(in samples per minute:30*60=1800)

技术图片

  第四步:添加监视器

  脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

  Jmeter中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter 有各种不同的监听器类型, 对于HTTP请求,我们可添加聚合报告,更为直观的查看测试结果。

  添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告。

  添加查看结果树( 添加--->监听器--->查看结果树)

  第五步:运行脚本

  第六步:聚合报告分析

  20个用户访问https://www.cnblogs.com/huainanhai/ 在负载达到30 QPS时的平均响应时间为1986ms

技术图片

  下图是聚合报告的性能指标解释说明(PS:响应时间单位为ms)

技术图片

 

 

软件自动化测试全套视频教程

..._Project08Linux基础09LoadRunner10LR_Project11综合串讲12做笔试题13JMeter教程14Selenium课程15电子书16软件包02、Jmeter视频教程+项目实战1-1Jimeter基础视频1-2Jmeter性能测试2-1Jmeter+Apache2-2Jmeter_Script2-3jmeter测试实战视频2-4JMeter测试功能插件3-1jmeter... 查看详情

python自动化教程jmeter性能测试

参考技术Apython自动化教程Jmeter性能测试25套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,UFT高级测试,Android测试,Selenium3自... 查看详情

全栈性能测试修炼宝典--jmeter实战

性能测试初体验1、测试分类  从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试、压力测试、性能测试、大数据量测试、恢复测试、内容泄露测试、竞品测试(比较测试)和可靠性测试。2、性能... 查看详情

jmeter深入进阶性能测试进阶案例实战

第1章性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言、操作系统、网络、工具等)。性能测试、稳定性、压力、疲劳、容量预估、多并发逻辑。掌握如何开始性能测试,并且掌握在性... 查看详情

jmeter深入进阶性能测试进阶案例实战

第1章性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言、操作系统、网络、工具等)。性能测试、稳定性、压力、疲劳、容量预估、多并发逻辑。掌握如何开始性能测试,并且掌握在性... 查看详情

jmeter深入进阶性能测试体系,接口性能测试,各领域企业实战

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安... 查看详情

jmeter全程实战性能测试实战分布式性能测试真实案例分析

测试需求描述1、本次测试的接口为http服务端接口2、接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性;保存信用卡账户... 查看详情

性能监控实战(全栈性能测试修炼宝典jmeter实战-第九章)

用户响应时间=服务器响应时间+网络时间系统性能分析思路(1)整体系统CPU利用率(2)内存利用率(3)磁盘I/O的利用率和延迟(4)网络利用率 cpuCPU:top、vmstat、uptime、sar  一般我们期望会期望系统平均可用的CPU不少于20%... 查看详情

全栈性能测试修炼宝典--jmeter实战

性能测试方向职业发展1、软件测试发展路线  我们可以暂且把软件测试职业路线分为3个方向,分别是业务路线、技术路线、管理路线;4个象限,分别为执行层、中层、中高层过渡、高层。  (1)业务路线  常见业务路... 查看详情

一个使用jmeter做接口性能测试的实战案例

1安装并配置JmeterJmeter的安装不在这里阐述,安装步骤非常简单。直接进入主题1.1数据库连接配置由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接。如果不涉及数据操作,可以跳过此步骤。步骤1... 查看详情

jmeter性能测试视频

jmeter性能测试视频 后端开发:1、2017龙果微服务架构的分布式事务解决方案2、2017年龙果springboot入门实战视频教程-首套中文教程3、51CTOSpringBoot实战与原理分析视频课程4、ElasticSearch5视频教程5、Elasticsearch顶尖高手系列:高手... 查看详情

jmeter性能测试从入门到精通

...来事半功倍从基础讲起,小白也能接受课程目标熟练掌握jmeter工具熟练使用jmeter进行脚本开发熟 查看详情

源码时代软测干货分享|jmeter性能测试实战(上)(代码片段)

确认被测项目的性能指标1.1性能测试指标性能测试指标,是性能测试中重要的测试依据,相当于测试用例中的预期结果,由于性能测试属于非功能性测试,在规范的项目中有专门的非功能性需求,但是在互联网高速发展的今天,为了早一... 查看详情

帮你排雷jmeter分布式性能测试那些坑~轻轻松松去实战

JMETER在做后端服务器性能测试中,我们会经常听到’分布式’。哪你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方... 查看详情

jmeter性能测试之基础知识

1.官网下载Jmeter:点这里,下载完成解压即可2.启动:进入解压后的bin目录,Windows点击jmeter.bat,Linux执行jmeter3.添加线程组(user):TestPlan-->Add-->Threads(Users)--> ThreadGroup,这里还有setUpThreadGroup和tearDownThreadGroup,前者是测试之前做的 查看详情

jmeter性能测试之基础知识

1.官网下载Jmeter: 点这里,下载完成解压即可2.启动:进入解压后的bin目录,Windows点击jmeter.bat,Linux执行jmeter3.添加线程组(user):TestPlan-->Add-->Threads(Users)--> ThreadGroup,这里还有setUpThreadGroup和tearDownThreadGroup,前者是 查看详情

《jmeter接口自动化与性能实战-飞天小子.pdf》

  Jmeter作为开源测试工具,以其轻便,功能齐全的优点,正越来越受到企业的重视。作为纯java的工具,它的扩展性无比强大,既可以做功能测试,也可以做性能测试;既支持接口层面的测试,也支持webdriver驱动浏览器做ui测试... 查看详情

jmeter基础016----jmeter接口功能性能自动化测试

一、JMeter接口功能测试1、概述   接口功能测试主要是测试系统中各个接口基本功能是否能够正常运行提交的数据(正向数据+逆向数据),模拟用户的多样性操作,检测程序的响应是否合情合理(符合预期)。2、功能测... 查看详情