• 0
  • 1
分享
  • jmeter进行http压力测试——软件测试圈
  • 恬恬圈 2022-11-29 13:04:39 字数 3367 阅读 1796 收藏 1

下载地址:http://jmeter.apache.org/download_jmeter.cgi

JMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat

1.png

1、添加线程组:

测试计划 -> 添加 -> Threads(User) -> 线程组,添加后进入如下界面:

2.png

线程数:表示将模拟多少个用户进行测试。
Ramp-Up Period(in seconds):线程启动间隔,所有线程将在这个时间内依次启动。
循环次数:所有线程执行一次为一次循环。
Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。
如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

2、添加采样器:

采样器可理解为针对前面创建的线程需要做什么事情,这里以添加HTTP请求为例。

1)线程组 -> 添加 -> Sampler -> HTTP请求,添加后进入如下界面:

3.png

上图为压测http的get类型接口,url中${newId}和${page}是动态参数,需要从文件中获取
服务器名或ip:填写服务器ip地址(例如:192.168.1.23)
路径:填写url接口剩余部分;
协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认值为http
方法:发送http请求的方法,可用方法包括get、post、head、put、options、trace、delete等。
Content encoding:内容编码方式
路径:目标url路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送http请求后得到的响应是302/301时,jmeter自动重定向到新的页面。
Use keep Alive:当该选项被选中时,jmeter和目标服务器之间使用keep-Alive方式进行http通信,默认选中
Use multipart/from-data for http post:当发送http post请求时,使用Use multipart/from-data方法发送,默认不选中。
同请求一起发送参数:在请求中发送URL参数,对于带参数的URL、jmeter提供了一个简单的对参数化的方法。用户可以将url中所有参数设置在本表中,表中的每一行是一个参数值对(对应URL中的名称 名称1=值1 )
同请求一起发送文件:在请求中发送文件,通常,http文件上传行为可以通过这种方式模拟。

2)添加CSV Data Set Config 来参数化

在d盘简历如下data.txt文件,在variable Names中输入newId,page后,在http请求中就可以通过${newId}获取到

1,1  
11,1  
111,1

4.png

3)如果是post接口,则把post数据写到parameters下面

5.png

3、添加监视器

监视器可以理解为针对结果的不同查看方式。JMeter里提供了多种结果表现形式。可通过 HTTP请求 -> 添加 -> 监视器 -> 察看结果树、聚合报告等等。

6.png

聚合报告各指标:
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,单位为毫秒。当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

压力测试知识说明

压力测试

压力测试分两种场景:一种是单场景,压一个接口的;第二种是混合场景,多个有关联的接口。压测时间,一般场景都运行10-15分钟。如果是疲劳测试,可以压一天或一周,根据实际情况来定。

压测任务需求的确认

压测前要明确压测功能和压测指标,一般需要确定的几个问题:

  1. 固定接口参数进行压测还是进行接口参数随机化压测?

  2. 要求支持多少并发数?

  3. TPS(每秒钟处理事务数)目标多少?响应时间要达到多少?

  4. 压服务器名称还是压服务器IP,一般都是压测指定的服务器

压测设置

  1. 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问

  2. Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。

  3. 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数

  4. 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。

压测结果查看

运行完后,聚合报告会显示压测的结果。主要观察Samples、Average、error、Throughput。

  1. Samples:表示一共发出的请求数

  2. Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)

  3. Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因

  4. Throughput:简称tps,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,tps越高说明服务器处理能力越好。

压测结果的分析

  1. 有错误率同开发确认,确定是否允许错误的发生或者错误率允许在多大的范围内;

  2. Throughput吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的往下减,找到最佳的并发数;

  3. 压测结束,·登陆相应的web服务器查看CPU等性能指标,进行数据的分析;

  4. 最大的tps:不断的增加并发数,加到tps达到一定值开始出现下降,那么那个值就是最大的tps。

  5. 最大的并发数:最大的并发数和最大的tps是不同的概率,一般不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数。

  6. 压测过程出现性能瓶颈,若压力机任务管理器查看到的cpu、网络和cpu都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题。

  7. 影响性能考虑点包括:数据库、应用程序、中间件(tomact、Nginx)、网络和操作系统等方面。

jmeter在linux下进行压力测试

  • jmeter 在linux安装

简单说下,就是要先安装jdk,同时再配置环境变量,最后再上传jmeter压缩的安装包,在linux下解压完安装包就可以使用了。推荐博客:http://blog.csdn.net/zhemeteor/article/details/51315874

  • jmeter在linux运行

进入jmeter下的bin目录下运行脚本,未配置jmeter环境变量的条件下,运行的命令:

./jmeter -n -t a.jmx -l res.jtl

其中a.jmx是准备好的jmeter脚本,res.jtl是测试结果文件,测试结果文件可以导入到jmeter察看结果树下查看。


作者:a656678879

原文链接:https://blog.csdn.net/a656678879/article/details/80053645

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   小鹏汽车 CEO 何小鹏18日分享了智驾团队在德国拍摄的高速 NGP 测试视频,并称当前“进展不错”。  何小鹏表示,位于德国的团队反馈,小鹏 XNGP“感知泛化能力极强”,拿到欧洲之后几乎可以直接上路,而且受过国内交通路况“博弈训练”的智驾软件,在海外的体验格外流畅。“从技术层面上来看,高阶智驾全球都能用指日可待。”  本月早些时候,近千台小鹏 G9 发运德国,为小鹏汽车有史以来单次最大规模的海外发运。据悉,此次出口总值超过 5 亿元,创中国高端智驾纯电汽车单船出口价值第一。上月末,小鹏汽车宣布正式进入德国市场,并将于今年 5 月开始在德国销售小鹏 G9 和小鹏 P7 的国际版车型。  ...
            0 0 667
            分享
          • 启动:启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动以上需要交叉组合测试。异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)功能介绍,引导图,流量提示等:全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。权限:当某些权限被安全软件或者系统禁止时,是否可以正常使用,...
            0 0 1043
            分享
          •   本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!  一、测试常见问题和流程篇  1. 介绍一下测试流程(重点,常见!)  需求评审、测试计划、测试用例、用例评审、冒烟测试、测试执行、验收测试、风险评估、上线\观察、问题跟进、测试报告、复盘会议。  根据自己的日常经验来回答,每个点的工作内容都需要清晰掌握,有可能就某个点如何工作进行提问。  2. 介绍一下测试方法  按阶段:单元测试、集成测...
            0 0 110
            分享
          • 读者提问:『免费好玩的API平台,有推荐的吗 ?』阿常回答:有,『免费 API』。官网地址:https://www.free-api.com/1、按平台分类百度、聚合数据、万维易源、小明API、高德地图、百度地图、腾讯地图,等等。2、按功能分类语音技术、文字识别、图像识别、车辆分析、图像审核、人脸识别、手机号处理、金融股票、天气和环境、二维码验证码、文件处理,等等。阿常碎碎念:免费 API,为您收集免费的接口服务,做一个 api 的搬运工,每月更新新的接口,有些接口来自第三方,在第三方注册就可以成为他们的会员,免费使用他们的部分接口。免费API看完今天的分享对你是不是有所启...
            0 0 9784
            分享
          •       经常有想转IT行业的同学,在了解软件测试和软件开发之后不知道转那个岗位好,今天就系统的,从多个维度来比较软件测试与软件开发,具体包括从基本素质要求、性格要求、入职门槛、知识结构、竞争压力、职业发展、职业前景等。希望能给在选择软件测试与开发朋友一个相对全面的解答。      一、【基本素质要求】      这里的基本素质包括比如逻辑思维能力、分析问题能力、沟通能力、协作能力、怀疑精神等方面。      【软件测试】:作为一名优秀的测试工...
            8 9 2548
            分享
      • 51testing软件测试圈微信