使用 apache-jmeter 完成WEB压力测试

本文提供了一步一步的指南,教你如何使用Apache JMeter进行WEB性能测试,从安装到创建测试计划,再到分析结果,全程手把手教学。

使用 apache-jmeter 完成WEB性能测试(入门篇)

jmeter 是学习成本比较低的一种测试工具,相对于繁重的loadrunner 脚本较为简单,在日常开发过程中,当我们需要检查自编写组件性能时,jmeter 是个不错的选择。
本人并非专业测试人员,而是一个菜鸟小开发,如果有任何问题,或者建议可以给我留言

  • apache-jmeter 简介
  • 获取 apache-jmeter
  • 测试计划
  • 创建一个请求(GET or POST)
  • 使用线程组实现并发操作
  • 使用监视器记录测试结果
  • 结果分析
  • 总结

apache-jmeter 简介

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

获取 apache-jmeter

jmeter官方地址 http://jmeter.apache.org/
这里写图片描述
点击Download Releases 进入下载页面
这里写图片描述
本文使用的版本为: apache-jmeter-2.13

测试计划

这里写图片描述

创建测试计划

这里写图片描述

保存测试计划,便于下次再次编辑

![这里写图片描述](https://img-blog.youkuaiyun.com/20150912023542522
这里写图片描述
这里写图片描述

关于线程组的参数设置,我们下面会在“使用线程组实现并发操作”栏目详细介绍。

在线程组中创建一个请求

选择“线程组”右键创建一个HTTP请求,如图设置:
这里写图片描述

HTTP请求详细参数设置

这里写图片描述

这里详细解释一下 :

http://127.0.0.1:8080/Server.do?ErrToJson=true&uuid=512dc383-7043-4fd2-8ecd-7606dd4b677b
以上的URL是我后台服务的访问地址 ,127.0.0.1 为我本机地址,对应上图web服务器栏目中的参数,路径则为
“/Server.do?ErrToJson=true&uuid=512dc383-7043-4fd2-8ecd-7606dd4b677b“,我后台所需的test1参数对应赋值为
1 ,而且对类型要求为数字。

接下来我们添加一个监视器来观察我们调用是否成功?

这里写图片描述
然后点击启动按钮执行一次请求
这里写图片描述
然后我们可以点击一下 “结果树”
这里写图片描述
这里写图片描述

使用线程组实现并发操作

保证我们服务调用正常后,我们接下来可以跑性能

点击线程组
这里写图片描述

我这里就不选择开始时间和结束时间了,我设置线程永远执行下去

这里写图片描述

测试都是需要结果的,我们需要再添加几个监听器,用于产生最终的性能测试报告
这里写图片描述

点击线程组,启动测试

这里写图片描述

使用监视器记录测试结果

我们看一下这几个测试监视器反馈的结果:

这里写图片描述
表格模式可以查看所有请求的详细响应状态
这里写图片描述

聚合报告可以查看到服务请求响应的最大时间和最小时间,以及成功率和失败率。
如果一个服务的失败率很高,证明服务存在低性能代码块,当然通过率也结合具体的业务场景,不是所有的服务都需要较高的通过率

这里写图片描述

图形结果可以形象的看出请求的具体状态,偏离为失败!

结果分析

工具只是检测质量的一个标准,而具体的性能要求,要根据具体的业务场景而定,本人仅仅是菜鸟开发,如果上述有理解不到位的地方,请各位测试大神指正!

总结

累死宝宝了!睡觉

【基本介绍】 Apache JMeter 是100%的Java桌面应用程序。用于对软件做压力测试(例如Web应用)。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。   另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 【软件特点】   在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apacheWebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。   相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。   测试结果字段的意义   1、Label: 定义的HTTP请求名称   2、Samples: 表示这次测试中一共发出了多少个请求   3、Average: 访问页面的平均响应时间   4、Min: 访问页面的最小响应时间   5、Max: 访问页面的最大响应时间   6、Error%: 错误的请求的数量/请求的总数   7、Throughput:每秒完成的请求数   8、KB/Sec: 每秒从服务器端接收到的数据量
Apache JMeterapache-jmeter-5.4.3.tgz)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter 功能包括: 能够加载和性能测试许多不同的应用程序/服务器/协议类型: 网络 - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...) SOAP/REST 网络服务 FTP 通过 JDBC 数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 - SMTP(S)、POP3(S) 和 IMAP(S) 本机命令或 shell 脚本 TCP Java 对象 全功能测试 IDE,允许快速记录测试计划(来自浏览器或本机应用程序)、构建和调试。 CLI 模式(命令行模式(以前​​称为非 GUI)/无头模式)从任何 Java 兼容操作系统(Linux、Windows、Mac OSX 等)加载测试 完整且可随时呈现的动态 HTML 报告 通过从最流行的响应格式、HTML、JSON、 XML或任何文本格式中提取数据的能力轻松关联 完全可移植性和100% Java 纯度。 完整的多线程框架允许多个线程并发采样和不同线程组同时采样不同功能。 缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和可视化插件允许极大的可扩展性和个性化。 函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值