zoukankan      html  css  js  c++  java
  • JMeter做压力测试教程及结果分析

    一、测试工具:
           JMeter

    二、JMeter介绍:
    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

    三、Java环境的安装与配置:
    (1)因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,

       oracle官网下载JDk https://www.oracle.com/technetwork/java/javase/downloads/index.html


     

    配置变量

    系统变量→新建 JAVA_HOME 变量 。  变量值填写jdk的安装目录(本人是 E:Javajdk1.7.0)

    系统变量→寻找 Path 变量→编辑

    在变量值最后输入 %JAVA_HOME%in;%JAVA_HOME%jrein;

    (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

    系统变量→新建 CLASSPATH 变量

    变量值填写   .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar(注意最前面有一点)

    系统变量配置完毕

    测试jdk是否安装成功,可在【开始】中搜索cmd,输入【java -version】


     

    四、JMeter下载与使用:
       1.JMeter下载地址:在官网 http://jmeter.apache.org/ 

    2.解压下载的二进制包,使用cmd命令进入bin目录,使用jmeter.bat启动程序。(注意直接双击jmeter.bat无法启动时需要使用Window+R,输入cmd,然后进入bin目录如下)

     

     3.启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI

     

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

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

     

    五、创建测试
    1.创建线程组

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

     

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

     

    3..创建Http请求

    在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】

     

    4.添加察看结果树和聚合报告

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

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

    结果树分析:

     

    通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。

    Thread Name(线程组名称): 线程组 1-24

    Sample Start( 启动开始时间): 2019-02-15 15:00:14 CST

    Load time(加载时长): 290

    Connect Time:(连接时长) 86

    Latency(等待时长): 174

    Size in bytes(发送的数据总大小): 2212

    Sent bytes:821

    Headers size in bytes(发送数据的其余部分大小): 1162

    Body size in bytes: 1050

    Sample Count(发送统计): 1

    Error Count(错误统计): 0

    Data type ("text"|"bin"|""): text

    Response code(返回状态码): 200

    Response message(返回信息): OK

    这里绿色的就说明请求是通过的,返回值是200,如果出现红色的×就说明请求失败,这时候可以通过右边的取样器结果和响应数据来查看结果。

    聚合报告分析:

     

    Sample:本次测试场景共运行多少线程;

     Average:平均响应时间; 

     Median:统计意义上的响应时间中值;

      90% line:所有线程中90%的线程响应时间都小于xx的值;

      Min:响应最小时间;

     Max:响应最大时间;

     Error:出错率;

    Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second 在CVS中被保存为0.5

    Kb/sec - 以Kilobytes/seond来衡量的吞吐量

    六、测试结果:
    (1)50个用户同时访问企业用户会议室预定页面,平均响应时间是0.146秒,最大的响应时间0.387秒,最小的响应时间是0.096秒,错误率为0。

     

    (2)100个用户同时访问企业用户会议室预定页面,平均响应时间是2.295秒,最大的响应时间8.132秒,最小的响应时间是0.425秒,错误率为0。

  • 相关阅读:
    BZOJ3752 : Hack
    XIV Open Cup named after E.V. Pankratiev. GP of SPb
    XIII Open Cup named after E.V. Pankratiev. GP of Ukraine
    BZOJ2087 : [Poi2010]Sheep
    BZOJ2080 : [Poi2010]Railway
    BZOJ2082 : [Poi2010]Divine divisor
    Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
    XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
    XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea
    XIII Open Cup named after E.V. Pankratiev. GP of SPb
  • 原文地址:https://www.cnblogs.com/6J2B2/p/12980399.html
Copyright © 2011-2022 走看看