zoukankan      html  css  js  c++  java
  • JMeter入门

    Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具;

    本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。

    运行环境为Windows 7系统,JDK版本为1.8,JMeter版本为5.1.1。

    1、JMeter安装

    1.1 JDK安装

    jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    下载完成后,安装、配置环境变量。

    1.2、JMeter安装

    1、官网下载地址:http://jmeter.apache.org/download_jmeter.cgi

    2、下载最新版JMeter:apache-jmeter-5.1.1.zip

    2、下载完成后,解压zip包

    3、配置环境变量

    4、启动JMeter

    若想要界面中文显示,修改bin目录下jmeter.properties文件:language=zh_CN

    到JMeter的解压路径的bin目录下找到jmeter.bat文件,双击运行即可(或管理员权限运行),进入到图形界面(命令行窗口最小化即可,不要关闭);

    打开JMeter之后会看到一个空的测试计划,点击可修改计划名称,添加注释

    2、测试实例

    一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出下拉菜单(添加-->Threads(Users)--->线程组)中选择线程组即可。

    jmeter中 每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。

    以http请求百度搜索接口为例:

    1、添加线程组

    右键添加->线程->线程组(Add-->Threads(Users)-->Thread Group)

    一个线程代表一个用户,线程属性:

    线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
    线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
    准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
    循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
    设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在20 QPS 负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数 与永远外;也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。

     2、添加http请求

    线程组右键添加->取样器->http请求

     

    一个HTTP请求有着许多的配置参数,下面将详细介绍:
    名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
    注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
    服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。
    端口号:目标服务器的端口号,默认值为80 。
    协议:向目标服务器发送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/from-data for HTTP POST:当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。
    同请求一起发送参数:在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
    同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。
    从HTML文件获取所有有内含的资源:当该选项被选中时,jmeter在发出 HTTP请求并获得响应的HTML文件内容后,还对该HTML进行Parse 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。
    用作监视器:此取样器被当成监视器,在Monitor Results Listener 中可以直接看到基于该取样器的图形化统计信息。默认为不选中。
    Save response as MD5 hash?:选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

    3、添加查看结果树

    线程组右键添加->监听器->察看结果树

    修改响应数据格式为“HTML Source Formatted”,可以看到具体的响应数据

     4、添加用户自定义变量

    线程组右键添加->配置元件->用户自定义变量

    修改Http请求中参数的值,格式为${word}

    5、添加断言

    http请求右键添加->断言->响应断言

    6、添加断言结果

    http请求右键添加->监听器->断言结果

    运行可看到断言结果成功或失败

    7、添加聚合报告

    线程组右键添加->监听器->聚合报告

    聚合报告参数详解:

    Label:每个请求的名称,比如HTTP请求等
    Samples:发给服务器的请求数量
    Average:单个请求的平均响应时间 毫秒ms
    Median:50%请求的响应时间  毫秒ms
    90%Line:90%请求响应时间 毫秒ms
    95%Line:95%请求响应时间 毫秒ms
    99%Line:99%请求的响应时间 毫秒ms
    Min:最小的响应时间 毫秒ms
    Max:最大的响应时间 毫秒ms
    Error%:错误率=错误的请求的数量/请求的总数
    Throughput:吞吐量,默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数。
    Received KB/sec:每秒从服务器端接收到的数据量
    Sent KB/sec:每秒从客户端发送的请求的数量

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/grapelet520/p/11133085.html
Copyright © 2011-2022 走看看