Jmeter快速实现接口测试

简介: Jmeter快速实现接口测试

掌握Jmeter已经是软件测试工程师的基本要求了,由于它免费开源,界面简洁,并且能够快速实现接口和性能的自动化测试,在互联网公司应用广泛,也是招聘需求里的一个高频技能了。

1.简介

Jmeter是apache组织使用纯java开发的一个开源免费测试工具,它可以实现接口和性能测试。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证业务接口功能。

img

支持多平台linux/Windows/Mac。

2.jmeter比LoadRunner有什么优点?

JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,并且安装包较小,相比LR的庞大(安装包3、4g),它非常小巧,只需要JDK环境,就可以使用。

而且jmeter功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,也可以根据自己的需求开发插件来完善它的功能。

3.软件下载及安装

软件包下载地址

Jmeter官网:http://Jmeter.apache.org/ Jmeter下载地址:http://Jmeter.apache.org/download_Jmeter.cgi

img

最新版本的已经到5.1.1,对应的JDK版本为1.8。

安装:

首先安装JDK,并且配置好环境变量,这个就不在赘述了。

在bin目录下,双击jmeter.bat。

4.目录简介

img

先大概了解下各个目录的作用

bin目录:

主要存放可执行文件,主程序的jar包,配置文件,日志文件等。

常用文件:

  • jmeter.bat:windows下的应用启动文件。
  • jmeter.sh:linux下启动文件。
  • jmeter.log:应用运行的日志文件。
  • jmeter.properties:系统配置文件,经常需要根据需要修改。

说明:

jmeter.bat/jmeter.sh:启动脚本中,可以对Jmeter的启动参数JVM堆内存大小进行配置,默认为512M,建议修改成1024M。

比如:setHEAP=Xms1024m-Xmx1024m

docs目录:

存放Jmeter官方API文档,便于进行二次开发。

extras目录

扩展插件目录,常用的是 Jmeter与ant集成的文件。

lib\ext目录:

该目录存放的是Jmeter的插件或者扩展组件。Jmeter会自动在lib和ext下寻找需要的类。

一般扩展的依赖包,会打成jar包放入ext目录。

printtable_docs目录:

该目录存放的是官方用户手册。

5.Jmeter的体系结构

img

两个维度

  • X1到X5模拟一个负载请求的过程
  • Y1完成请求的实现,Y2断言:实现请求结果的判断,Z监听器:实现结果收集,分析统计。
6.组件分类
  • 测试计划(Test Plan):使用 Jmeter 进行测试的起点,它是其它 Jmeter 测试元件的容器。
  • 线程组(Thread Group):代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
  • 采样器(sampler):定义实际的请求内容,被线程组包含,比如HTTP请求、java请求等。
  • 监听器(Listener) :响应结果的显示,统计等。
  • 逻辑控制器(Logic Controller) :帮助用户控制Jmeter的测试逻辑及执行顺序。
  • 断言(Assertions) :用来检查从服务器获得的响应内容是否符合预期。
  • 配置元件(Config Element) :初始化默认值和变量,以便采样器使用。
  • 前置处理器(Pre Processors)和后置处理器(Post Processors) :请求前后的处理操作。
  • 定时器(Timer):为采样器设置等待时长。
7.原件库的执行顺序
  1. 配置元件
  2. 前置处理器
  3. 定时器
  4. sampler
  5. 后置处理器
  6. 断言
  7. 监听器
8.作用域

在Jmeter中,配置元件、定时器、前置处理器、后置处理器、断言、监听器都是用来辅助脚本功能实现的,都是 依赖于Sampler组件,这六类组件和Sampler之间就存在一个作用关系,即作用域。

作用域的原则

  1. 取样器(sampler):不与其它元件相互作用,所以不存在作用域的问题。
  2. 逻辑控制器(Logic Controller):只对其子节点中的采样器和逻辑控制器起作用。
  3. 除采样器和逻辑控制器元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对该sampler及子节点起作用。
  4. 除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点,包括内部节点。
9.一个简单的http请求测试

首先添加线程组:

线程组用来模拟用户,所以也叫Users。一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网站的相关性能。

img

线程数:虚拟用户数,即并发数,一个线程表示一个虚拟用户; Ramp-Up Period:所有线程启动的时间,单位s。通过这个参数可以设置每个线程间的启动间隔; 循环次数:测试循环的次数,如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止运行脚本;

img

添加http请求

img

一般填写如下要素:

img

添加监听器

监听器(Listener):是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图形结果、查看结果树、聚合报告、用表格察看结果都是我们经常用到的元件。 点击启动按钮,在监听器中查看请求结果。

img

添加聚合报告

聚合报告(aggregate report):对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐。

img

每个接口请求会显示独立的一行数据,每行有13个字段,含义分别如下:

  • Label:请求名或者请求标签,每个JMeter 的组件(例如 HTTP Request)都有一个 “名称” 属性,这里显示的就是“名称”属性的值。
  • #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示就是100了。
  • Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间。
  • Median:中位数,也就是所有请求响应时间中排在中间的那个响应时间点,也就是50% Line,请参考90% Line解释。
  • 90% Line:90%用户请求响应时间,如果把某次任务的所有请求的响应时间按从小到大排序,它是指排在90%处那个点的请求的响应时间,也就是说有90%的请求的响应时间小于等于这个响应时间。后面的50/60/70/80/90/95/99 % Line 也是类似的含义。
  • 95% Line:95%用户请求响应时间,请参考90% Line解释。
  • 99% Line:99%用户请求响应时间,请参考90% Line解释。
  • Min:最小响应时间,所有请求样本中的最小响应时间。
  • Max:最大响应时间,所有请求样本中的最大响应时间。
  • Error%:本次测试中“出现错误的请求数/请求的总数”百分比值。
  • Throughput:吞吐量,就是服务器在一定时间范围内处理的请求数。在本报告中它的含义其实其实是吞吐率,表示每秒完成的请求数(Request per Second),此指标代表服务器的处理能力,比如支付宝峰值处理量达到12万笔/秒。
  • Received KB/sec:每秒从服务器端接收到的数据量。
  • Sent KB/sec:每秒从客户端发送到服务器端的数据量。
目录
相关文章
|
5月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
666 0
|
4月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
898 10
|
4月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
555 0
|
11月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
6月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
993 23
|
8月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1123 24
|
8月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
8月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
336 2
|
10月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
719 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
10月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
510 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡