Jmeter:负载功能测试和性能测试

来源:互联网 发布:访问虚拟机nginx失败 编辑:程序博客网 时间:2024/05/18 02:20

[本文大部分内容转载自:http://www.testclass.net/jmeter/]

Apache JMeter™应用开源软件,100%纯Java应用程序,设计用于负载功能测试和性能测试。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试函数中。

Apache JMeter 功能包括:

  1. 能够加载和测试许多不同的应用程序/服务器/协议类型:
    • Web的HTTP,HTTPS(java,Nodejs,PHP,ASP.NET,…)
    • SOAP / REST Webservices
    • FTP 文件传输协议
    • Database via JDBC
    • LDAP
    • Message-oriented middleware (MOM) via JMS
    • 邮件传输协议 - SMTP(S), POP3(S) 和 IMAP(S)
    • 本地命令或Shell 脚本
    • TCP
    • Java Objects
  2. 全功能测试IDE,允许快速记录测试计划(来自浏览器或本地应用程序),构建和 调试。
  3. 基于Java开发,支持Linux、Windows、MAC OSX等平台。
  4. 可以生成完整的动态HTML报告。
  5. 通过从最流行的响应格式、HTML、JSON、XML或任何文本格式提取数据的能力,可以轻松地进行相关性。
  6. 全多线程框架允许多线程并发采样,同时通过不同的线程组进行不同功能的同时采样。
  7. 缓存和离线分析/重放测试结果。
  8. 高度可扩展内核。

一、Jmeter安装

  1. 首先,安装Java。
  2. 然后,下载Jmeter。
  3. 解压下载的apache-jmeter-3.2.zip包.
  4. 进入…\apache-jmeter-3.2\bin\解压目录,双击ApacheJMeter.jar启动(注:一定要配置Java环境)。

二、Jmeter测试计划中的元素

http://www.testclass.net/jmeter/jmeter-doc-03/

三、Jmeter与数据库

http://www.testclass.net/jmeter/jmeter-doc-06/

四、Jmeter与ftp

http://www.testclass.net/jmeter/jmeter-doc-07/

五、录制与回放

Web录制与回放: http://www.testclass.net/jmeter/record_and_replay/
APP录制与回放:
1.使用PC共享可供手机连接上网的WIFI,记录IP地址,填入HTTP代理服务器中的HTTPS Domains。
2.手机连接PC共享的WIFI,设置代理:手动+主机名(1中记录的IP地址)+端口8888(同HTTP代理服务器一致)
3.选择目标控制器,选择分组:每个组放入一个新的控制器,点击启动,如出现提示点击确定即可开始录制。

六、Jmeter结果分析

1. 查看结果树

  • Thread Name: 线程组名称
  • Sample Start: 启动开始时间
  • Load time: 加载时长
  • Latency: 等待时长
  • Size in bytes: 发送的数据总大小
  • 1GB=1024MB,1MB=1024KB,1KB=1024Bytes
  • Headers size in bytes: 发送头大小
  • Body size in bytes: 发送数据的其余部分大小
  • Sample Count: 发送统计
  • Error Count: 交互错误统计
  • Response code: 返回码
  • Response message: 返回信息
  • Response headers: 返回的头部信息

2. 聚合报告

  • Label:请求类型,对应在测试计划下填写的请求名称。
  • Samples:当前发送到服务器的请求总数,对应图形报表中的样本数目。
  • Average:平均响应时间,计算方法是总运行时间除以发送到服务器的总请求数,对应图形报表中的平均值。
  • Median:中位数,也就是50%用户的响应时间,即图形报表中的中间值。
  • 90%line:90%请求的响应时间值。
  • Min:服务器响应的最短时间。
  • Max: 服务器响应的最长时间。
  • Error%: 请求返回错误的百分比。
  • Throughput: 服务器每单位时间处理的请求数,对应图形报表中的吞吐量。
  • KB/sec: 每秒钟请求的字节数。

3. 图形结果

  • 样本数目:总共发送到服务器的请求数 
  • 最新样本:代表时间的数字,是服务器响应最后一个请求的时间 
  • 吞吐量:服务器每分钟处理的请求数。是指在没有帧丢失的情况下,设备能够接受的最大速率。
  • 平均值:总运行时间除以发送到服务器的请求数 
  • 中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。 
  • 偏离:服务器响应时间变化、离散程度测量值的大小,或者换句话说,就是数据的分布。

4.用表格查看结果

  • Sample:每个请求的序号。
  • Start Time: 每个请求开始时间。
  • Thread Name: 每个线程组名称。
  • Label:请求类型,对应在测试计划下填写的请求名称。
  • Sample Time: 每个请求所花时间,单位毫秒。
  • Status: 请求状态,如果为勾则表示成功,如果为叉则表示失败。
  • 如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。
  • Bytes: 请求字节数。
  • Latency: 等待时长。