精华内容
下载资源
问答
  • 一....所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。二.关于JMeterApache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设...

    一.前言

    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。

    二.关于JMeter

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

    Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

    三.准备工作

    因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲不如安装JAVA环境了。.

    JAVA环境变量配置:(这个不懂的可以百度经验查询下)

    解压下载的二进制包,进入bin目录,使用jmeter.bat启动程序。

    启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:

    CMD窗口的提示信息

    ================================================================================

    Don't use GUI mode for load testing !, only for Test creation and Test debugging.

    For load testing, use NON GUI Mode:

    jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

    & increase Java Heap to meet your test requirements:

    Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file

    Check : https://jmeter.apache.org/usermanual/best-practices.html

    ================================================================================

    上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:

    jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

    并且修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"

    更改语言为中文

    官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文

    四.创建测试

    1.创建线程组

    在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。

    设置线程数和循环次数。我这里设置线程数为500,循环一次。

    2.配置元件

    在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。

    配置我们需要进行测试的程序协议、地址和端口

    当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。

    3.构造HTTP请求

    在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json

    4.添加HTTP请求头

    在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。

    因为我要传输的数据为json,所以设置一个 Content-Type:application/json

    5.添加断言

    在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。

    根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息

    6.添加察看结果树

    在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。

    直接添加,然后点击运行按钮就可以看到结果了。

    7.添加Summary Report

    在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。

    直接添加,然后点击运行按钮就可以看到结果了。

    为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。

    8.测试计划创建完成

    记得点保存。

    五.执行测试计划

    前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。

    ff8171469352c26b58d6ca7b85976b12.png

    六.写在最后

    线程数量和循环次数将会影响最终的测试报告,

    展开全文
  • 原文连接:使用 JMeter 进行压力测试一.前言压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其...

    原文连接:使用 JMeter 进行压力测试

    一.前言
    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。二.关于JMeter
    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
    Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
    官网:http://jmeter.apache.org/download_jmeter.cgi
    这里我选用了 4.0 版本的二进制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
    更多内容介绍 https://baike.baidu.com/item/Jmeter/3104456三.准备工作
    因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲不如安装JAVA环境了。.
    JAVA环境变量配置:https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html
    解压下载的二进制包,进入bin目录,使用jmeter.bat启动程序。
    启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:

    8ff43ad630ed059f813856c3db44248b.png


    JMeter:

    a70125cb5ee135bf82dc3d845170e836.png

    CMD窗口的提示信息
    ================================================================================ Don't use GUI mode for load testing !, only for Test creation and Test debugging. For load testing, use NON GUI Mode: jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder] & increase Java Heap to meet your test requirements: Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file Check : https://jmeter.apache.org/usermanual/best-practices.html ================================================================================
    上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
    jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
    并且修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"更改语言为中文
    官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文

    287d49fef9f5b9f846acf8a1a257ea72.png

    四.创建测试1.创建线程组
    在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。

    c91b98dacfa79c4f64e2b14b335f4c05.png


    设置线程数和循环次数。我这里设置线程数为500,循环一次。

    9cf2472816085eafce0e8ef55e4f960d.png

    2.配置元件
    在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。

    afe3f573483c7f5964810c07282c8669.png


    配置我们需要进行测试的程序协议、地址和端口

    36276d4b8f26c20daadc9aa25bb1ca7a.png


    当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。3.构造HTTP请求
    在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json

    a58ea8d789285c0ffcf0899b44476829.png

    4.添加HTTP请求头
    在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。
    因为我要传输的数据为json,所以设置一个 Content-Type:application/json

    2c6b43085e0f0bb9ef051cbc297b4c98.png

    5.添加断言
    在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。
    根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息

    8ef44e444939a7845660072b6198288d.png

    6.添加察看结果树
    在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。
    直接添加,然后点击运行按钮就可以看到结果了。

    45196be2fd612875b94373e908ddb9b4.png

    7.添加Summary Report
    在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。
    直接添加,然后点击运行按钮就可以看到结果了。

    8c42983eef336efbdf6aa4e212541f1f.png


    为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。8.测试计划创建完成
    记得点保存。五.执行测试计划
    前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。

    f6104bde95d3bce7b84d7b7e2560a93b.png


    我这里执行的命令为:
    jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
    说明:testplan/RedisLock.jmx 为测试计划文件路径testplan/result/result.txt 为测试结果文件路径testplan/webreport 为web报告保存路径。
    Web报告如下:

    c8bef75558f9b463d160696926082cc2.png

    六.写在最后
    线程数量和循环次数将会影响最终的测试报告,请大家多多测试。

    展开全文
  • 最近项目验收,需要做一个压力测试报告,项目不大,本来系统完全能支撑当前用户业务,但为了写报告还是用jmeter做了个压力测试,总结如下:1、安装jmeter安装十分简单,直接官网下载压缩包解压,解压点击bin目录下...

    最近项目验收,需要做一个压力测试报告,项目不大,本来系统完全能支撑当前用户业务,但为了写报告还是用jmeter做了个压力测试,总结如下:

    1、安装jmeter

    安装十分简单,直接官网下载压缩包解压,解压点击bin目录下jmeter.bat即可,前提是电脑已经安装了jdk。

    b612b58c4e60cfbe639a98e94665ba97.png

    jmeter目录

    2、使用jmeter

    运行jmeter后可以Options里切换到中文界面,testplan下添加线程组:

    10e80002162da37b1f963b0b4b879fbe.png

    本次用到的功能就并发发送http请求,查看结果树,汇总报告,聚合报告:

    f2627ca58c9a5f1307ee8c2ce3e7bf1c.png

    使用功能

    压力测试报告主要截图聚合报告。聚合报告字段含义如下:

    Label:说明是请求类型,如Http,FTP等请求。

    #Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。

    Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。

    Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

    90%line:是指90%请求的响应时间比所得数值还要小。

    Min:是代表时间的数字,是服务器响应的最短时间。

    Max: 是代表时间的数字,是服务器响应的最长时间。

    Error%:请求的错误百分比。

    Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。

    KB/sec:是每秒钟请求的字节数。

    3、由于系统需要保持登录状态测试其他页面,用到了badboy录屏生成jmeter脚本工具,该工具使用如下:

    134cbbad2de5edab75edc5a2e4321838.png

    badboy

    badboy中在test suite--> test1-->step1中点击录制按钮录制脚本

    4ac324504cf64c5aba10bdcd4a75bb4e.png

    录制脚本

    把录入脚本导入jmeter中:

    8ddd9c2c3ac91283efc29d672b4fab6f.png

    jmeter测试脚本导入

    导入后就可以填写不同的并发量进行压力测试了.

    2657e5fd520f24358825e85dcb799f42.png

    聚合报告

    8d227b4e33b56eb54852902e2f815297.png

    结果树

    如果需要设置动态变量,详情可以搜索网上博客或私信探讨。

    展开全文
  • 上一篇文章里测试了服务器经过负载均衡之后的静态页面(准确的说也不完全是静态页面,因为里面也包含了数据库请求,只是没有数据所以看着像是一个静态页面),今天来做下请求动态数据页面压力测试。先使用Navicat将每...

        上一篇文章里测试了服务器经过负载均衡之后的静态页面(准确的说也不完全是静态页面,因为里面也包含了数据库请求,只是没有数据所以看着像是一个静态页面),今天来做下请求动态数据页面压力测试。


        先使用Navicat将每个数据库里面的展示表插入100条数据,为了保证数据的一致性,2-4-2到2-4-3三台业务服务器的数据库用的同一个sql文件

    #表名news_newsmodel# 字段title,content,create_timedelimiter $$DROP PROCEDURE IF EXISTS proc_batch_insert;CREATE PROCEDURE proc_batch_insert()BEGINDECLARE pre_name BIGINT;DECLARE ageVal INT;DECLARE i INT;SET pre_name=1;SET ageVal=100;SET i=1;WHILE i     INSERT INTO news_newsmodel(`title`,content,create_time) VALUES(CONCAT(pre_name,'-zhangxiaofei'),(ageVal+i)%30,NOW());SET pre_name=pre_name+100;SET i=i+1;END WHILE;END $$delimiter ;call proc_batch_insert();

    示例页面如下

    920a3358364ad4679e12847dd78c3349.png

        我将使用jmeter来测试get请求,由于目前还没搞懂jmeter如何设置get路径的参数变量,也不想在测试上花费太多时间,所以我就随机来写链接进行测试了。因为没有缓存,影响应该不大。类似下面这种

    http://202.182.107.126/article/99/

    48d3814b996acf04947f3ebee80ab612.png

        测试一:100用户/秒并发访问,持续10秒

        24G集群。215ms。

    65eabe1f1d9b627c432f03653b1598ae.png

        6核16G内存。196ms。

    a86dbd39f1071704b560a1722bc2e908.png

        8核32G。基本差不多。

    bf35b1abe0e51876371ce941481ee92e.png

        测试二:300用户/秒并发访问,持续10秒

        24G集群。565ms,错误率1%-6%之间。

    4f38ee95f787a9bce6186f635cd9eab1.png

        6核16G内存。552,但错误率在9%-15%之间。

    ff25f6be3987484b18ff4145a4560d75.png

        8核32G。错误率基本在7%左右。

    b575eb707400f2dab4d4b25aa425d881.png

        测试三:500用户/秒并发访问,持续10秒

        24G集群。12%-24%左右的错误率,基本3台业务服务器的cpu都跑满了。

    e5b995fcedc1570f22fedfb58fadcc0f.png

        6核16G内存。错误率在16%-30%。

    c442029823435cdc29008f48d80fdd80.png

        8核32G。错误率在20%-36%。

    a66b31174c1ab02c16182fc1a81849a3.png

        说明:在网站对抗高并发访问的情况下,负载均衡的效果还是有效的,但并不是说负载均衡就是加速网站访问的神器,从上一篇和这一篇的测试可以看到,即使做了nginx的负载均衡,在每秒100模拟用户访问的情况下,2核4G集群的平均访问时长并没有比6核和8核的服务器响应速度快,这个也好理解,因为在服务器资源完全充足的情况下,高配置服务器肯定是比低配置服务器处理请求的速度更快的,通过nginx配置负载均衡的优势在于应对高并发,降低服务器内部错误的概率,返回正确的数据给客户。

        以上结论仅供参考。

    展开全文
  • 一、下载安装 ... 下载完成后将其解压到某个磁盘位置,进入文件夹的bin目录,运行jmeter.sh文件,即可进入Jmeter的操作页面。 操作界面如图所示: 二、创建测试计划 1、新建测试计划 ...
  • 一、为什么要使用分布式测试按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。有时候为了尽量...
  • 性能测试是系统在一定的负载和压力的情况下,系统的响应时间,吞吐量,稳定性,课扩展性等性能指标。也就是我们要验证系统是否在这些指标范围,或者说验证这些指标是否符合用户或客户的需求。性能指标包含系统指标和...
  • 本文将基于jmeter测试工具,讲述下压力常用的压力测试方法,以及操作步骤。工具使用比较简单,所以如果认真按照本文说明,很方便上手。注意:本文基于Mac进行测试一、准备工作1.1 安装JDK8 以上版本因为,jmeter进行...
  • Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 重点:开源免费 1、下载安装 下载指路:...
  • 作者:Yunga简介Apache JMeter是一款纯Java的开发测试工具,它可以用于服务器压力测试,可以方便的获取来自不同压力下的性能指标。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证返回...
  • 性能测试是系统在一定的负载和压力的情况下,系统的响应时间,吞吐量,稳定性,课扩展性等性能指标。也就是我们要验证系统是否在这些指标范围,或者说验证这些指标是否符合用户或客户的需求。性能指标包含系统指标...
  • 今天跟大家分享一下Jmeter性能测试,首先需要了解性能测试的定义是什么,为什么要做性能测试...负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当...
  • 今天跟大家分享一下Jmeter性能测试,首先需要了解性能测试的定义是什么,为什么要做性能测试...负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当...
  • 一、 Apache JMeter工具1)简介JMeter——一个100%的纯java桌面应用,它是 Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象...
  • 上篇文章《【Java实战】分布式锁实战之重现高并发场景一》介绍分布式锁使用的前因的准备,这篇文章我们将继续分布式锁重现出现的效果,即借助Jmeter压力测试工具来复现!!让诸位小伙伴能一睹高并发下出现的“数据不...
  • 一、 ApacheJMeter工具  1)简介  JMeter——一个100%的纯java桌面应用,它是 Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的... 2)Jmeter压力测试软件的下载...
  • 如果要模拟在一瞬间高并发测试的时候,需要调高线程数量,这很耗测试机器的性能,往往无法支持较大的并发数,无法控制每次测试的瞬间并发量。那么,该如何解决上述问题呢?解决方案:使用集合点。阻塞线程,直到...
  • 一、 Apache JMeter工具 ...JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp 服务器或者其他资源)。  3)Apache JMeter 的特性:  a) 能
  • 使用JMeter进行高并发测试

    万次阅读 2018-12-23 20:35:06
    通俗的讲,压力测试即在一定的硬性条件下,模拟大批量用户对软件系统进行负荷测试.需要注意的是,压力测试的目的不是为了让软件变得完美无瑕,而是通过压力测试,测试出软件的负荷极限,进而重新优化性能或在实际的应用...
  • 在run 某个 collection 时,选择次数为5,其请求方式是:第一个请求结束,再去第二次执行该请求,所以其不能作为用于高并发压力测试。 使用Apache压力测试工具:Jmeter 下载地址 使用方法(Jmeter免安装...
  • JMeter高并发使用

    2020-06-13 16:07:23
    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. JMeter下载: 官网下载:http://jmeter.apache.org/download_jmeter.cgi ...
  • Win7使用Jmeter3.1进行高并发压力测试 目的:测试服务器能同时承受多少条HTTP请求、写的接口的并发性能怎么样。 通过各种百度后发现LoadRunner是好,但是使用起来短时间内比较难上手,然后就找到了Jmeter。 ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 239
精华内容 95
关键字:

jmeter高并发压力测试