使用Jmeter进行压力测试的完整步骤

发表于:2024-4-22 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:swadian2008    来源:CSDN

  什么是压力测试
  压力测试就是被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)。
  例如:模拟2000个用户同时到一个购物网站购物,测试这些用户打开页面的速度是否会变慢,或者网站是否会奔溃。
  1、准备工作:安装Jmeter
  安装Jmeter之前需要先安装好JDK环境。//Jmeter是使用Java编写的工具
  下载Jmeter安装包(压缩包,windows环境为zip格式):ApacheJMeter-ApacheJMeter?
  解压安装包,进入bin目录,点击jmeter.bat启动Jmeter。
  2、开始压力测试
  (1)首先需要创建线程组
  点击jmeter.bat启动Jmeter后会弹出可视化窗口,按如图步骤,使用Jmeter创建线程组:
  创建完创建线程组后,界面如下:
  线程组参数详解:
  线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  Ramp-UpPeriod(inseconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
  循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  DelayThreadcreationuntilneeded:直到需要时延迟线程的创建。
  调度器配置:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
  调度器配置参数:
  持续时间(秒):测试持续时间,会覆盖结束时间
  启动延迟(秒):测试延迟启动时间,会覆盖启动时间
  启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
  结束时间:测试结束时间,持续时间会覆盖它。
  (2)创建HTTP请求
  创建的线程组后,在创建的线程组基础上,点击添加HTTP请求:
  创建页面如下图所示:
  性能测试时:HTTP实现请选择Java,点击keepAlive,使用长连接进行测试(避免经常进行三次握手,影响测试准确性)。
  Http请求主要参数详解:
  1)Web服务器
  协议:向目标服务器发送请求协议,可以是HTTP或HTTPS,默认为HTTP
  服务器名称或IP:HTTP请求发送的目标服务器名称或IP
  端口号:目标服务器的端口号,默认值为80
  2)HTTP请求
  方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
  路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
  Contentencoding:编码方式,默认为ISO-8859-1编码,这里配置为utf-8
  3)同请求一起发送参数
  在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的name=value),注意参数传入中文时需要勾选“编码”。
  发送json数据:
  消息头的设置:Content-Type=application/json
  (3)添加察看结果树
  在创建的线程组基础上继续添加查看结果树:
  添加完后,展示结果如图:
  (4)添加聚合报告
  在线程组基础上继续添加聚合报告,如图:
  聚合报告的展示结果如图:
  聚合报告参数详解:
  Label:每个JMeter的element(例如HTTPRequest)都有一个Name属性,这里显示的就是Name属性的值
  #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  Average:平均响应时间——默认情况下是单个Request的平均响应时间,当使用了TransactionController时,以Transaction为单位显示平均响应时间
  Median:中位数,也就是50%用户的响应时间
  90%Line:90%用户的响应时间
  Min:最小响应时间
  Max:最大响应时间
  Error%:错误率——错误请求数/请求总数
  Throughput:吞吐量——默认情况下表示每秒完成的请求数(RequestperSecond),当使用了TransactionController时,也可以表示类似LoadRunner的TransactionperSecond数
  KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
  一般而言,性能测试中我们需要重点关注的数据有:#Samples请求数,Average平均响应时间,Min最小响应时间,Max最大响应时间,Error%错误率及Throughput吞吐量。
  3、完整的测试步骤图示
  完成步骤二后,一个搭建完成的性能测试步骤如下图:
  至此,Jmeter的性能测试的简单步骤介绍完毕。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号