使用Apache JMeter进行HTTP Restful接口性能测试

使用Jmeter进行rest API测试 1.     背景概述 服务器接口文档链接:https://github.com/xlink-corp/xlink-sdk 2.     Jmeter的下载安装 2.1  Jmeter官方下载地址:http://jmeter.apache.org/download_jmeter.cgi 此处我们使用最新的3.0版本,直接集成了jsonpath等功能 2.2  Jmeter无需安装,下 阅读详情

Apache JMeter概述

Apache JMeter是纯Java语言编写开源的应用程序,主要用于进行功能测试和性能测试。它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

Apache JMeter 主要特色包括:

  • 可以用于测试很多不同的应用程序/服务器/协议类型,如
    Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
    SOAP / REST Webservices
    FTP
    Database via JDBC
    LDAP
    Message-oriented middleware (MOM) via JMS
    Mail - SMTP(S), POP3(S) and IMAP(S)
    Native commands or shell scripts
    TCP
    Java Objects
  • 可以生成完整易读的动态HTML报告;
  • 通过从最流行的响应格式HTML、JSON、XML或任何文本格式中提取数据的能力,可以轻松地进行关联;
  • 完整的多线程框架可以多线程并发测试,也可以通过线程组进行隔离;
    缓存和离线的分析/重放测试结果;
    方便通过Mavne、Gradle和Jenkisn的第三方开源库进行持续集成。

环境准备

JDK
JMeter 4.0 以后开始兼容 Java 8 or Java 9,所以建议安装JDK8、JDK9
安装好JDK后需要配置环境变量

Apache JMeter 5.1.1
http://jmeter.apache.org/download_jmeter.cgi

解压缩后目录结构,其中X.Y 是版本号

apache-jmeter-X.Y
apache-jmeter-X.Y/bin
apache-jmeter-X.Y/docs
apache-jmeter-X.Y/extras
apache-jmeter-X.Y/lib/
apache-jmeter-X.Y/lib/ext
apache-jmeter-X.Y/lib/junit
apache-jmeter-X.Y/licenses
apache-jmeter-X.Y/printable_docs

JMeter官方入门文档请参见 http://jmeter.apache.org/usermanual/get-started.html

使用JMeter测试novelApi开放接口

接口说明:获取网易新闻
请求方式:POST
请求地址:https://api.apiopen.top/getWangYiNews

Body参数名类型必需描述示例 e.g.
pagestring是页码1
countstring是返回总数5
  1. 使用管理员权限启动jmeter.bat

  2. 新建测试计划TestNovelApi,选择保存目录
    新建测试计划

  3. 添加线程组
    在左侧Test WangYiNews菜单上右键依次选择添加-线程(用户)-线程组
    添加线程组
    添加成功后,Test WangYiNews节点下多了线程组节点,线程组的名称是可以自己修改。
    线程组

  4. 添加HTTP请求默认值
    右键线程组,选择添加→ 配置元件→HTTP请求默认值
    添加HTTP请求默认值
    添加成功后,线程组”节点下多了HTTP请求默认值节点,可以修改HTTP默认请求名称,配置Web服务器协议、IP、端口号等信息
    HTTP请求默认值

  5. 添加HTTP信息头管理器
    右键线程组,选择添加→ 配置元件→HTTP信息头管理器
    HTTP信息头管理器
    添加成功后,线程组”节点下多了HTTP信息头管理器节点,可以修改HTTP信息头管理器名称,配置请求头所需要的参数信息,比如token
    HTTP信息头管理器

  6. 添加HTTP请求
    右键线程组,选择添加→ 取样器→HTTP请求
    添加HTTP请求
    添加成功后,线程组”节点下多了HTTP请求节点,可以修改HTTP请求的名称,在基选项想设置Web服务器的信息,这里在HTTP请求默认值中已经配置过;注意HTTP请求中的各项配置,包括 方法: GET、POST、PUT等, 路径: 接口地址,内容编码: 默认utf8 ,**请求参数:**根据实际情况填写,本示例填写了page和count两个参数
    HTTP请求

  7. 添加监听器
    右键线程组,选择添加→ 监听器→图形结果
    监听器有很多种
    在这里插入图片描述
    图形结果
    图形结果

汇总报告
汇总报告
聚合报告
聚合报告
Label: 每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#样本: 表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
平均值: 平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
中位数: 中位数,也就是 50% 用户的响应时间
90% 百分位: 90% 用户的响应时间
95% 百分位: 95% 用户的响应时间
99% 百分位: 96% 用户的响应时间
最小值: 最小响应时间
最大值: 最大响应时间
异常%: 本次测试中出现错误的请求的数量/请求的总数
吞吐量: 吞吐量—默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
接收KB/Sec: 每秒从服务器端接收到的数据量
发送KB/Sec: 每秒发送到服务器端的数据量

察看结果树
察看结果树

  1. 修改线程组参数,进行接口性能测试
    线程组参数
    (1)线程数:即用户数,一个虚拟用户占用一个进程或线程,需要多少个用户施压,就设置多少虚拟用户数,在这里就是设置多少个线程数。
    (2)Ramp-Up 时间(秒) 准备时长:设置的虚拟用户数需要在多长时间内全部启动。例如线程数为100,准备时长为10,那么需要10秒钟启动100个线程,也就是每秒钟启动10个线程。我们这里设置1秒,表示1秒内10个用户全部启动。
    (3)循环次数:每个线程发送请求的次数。例如线程数为10,循环次数为10,那么每个线程发送10次请求,则总请求数为10*10=100 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
    (4)延迟创建线程直到需要:直到需要时延迟线程的创建。
    (5)调度器:可以设置线程组的持续时间或启动时间和结束时间。
    当选用配置调度器时,需要设置循环次数为永远,防止因循环次数不够而终止压测。
    持续时间(秒):测试计划持续多长时间,例如1分钟就填写60,会覆盖结束时间。
    启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。

聚合报告
聚合报告
图形结果
在这里插入图片描述

  1. 使用命令行生产测试报告

TestUserlist.jmx是编写的测试计划

 jmeter -n -t E:\jmeter\TestUserlist.jmx -l E:\jmeter\report\TestUserlist.log -e -o E:\jmeter\report\result

jmeter –n –t <jmx filepath> -l <csv log path> -e –o <report folder path>
-n: 非GUI模式执行JMeter
-t: 执行测试文件所在的位置
-l: 指定生成测试结果的保存文件,jtl文件格式
-e: 测试结束后,生成测试报告
-o: 指定测试报告的存放位置该方式的输入,为JMX file path,
另外两个参数(CSV log和report folder)皆为输出。
需要注意的是,csv log不能在report folder下,
否则将报类似csv log is not empty之类的错误。

生成的HTML报告
在这里插入图片描述

Restful压力测试工具Apache Jmeter Apache Jmeter能够对HTTP和FTP服务器进行压力和性能测试。 立即下载

相关推荐

保姆级教程:手把手调试PX4Ctrl的油门映射与姿态控制(附ROS节点配置)

本文提供PX4Ctrl的深度调参指南,涵盖油门映射、姿态控制及ROS节点配置等关键环节。通过详细解析PX4控制器的核心逻辑、递归最小二乘法(RLS)参数估计及状态机设计,帮助开发者优化无人机飞控性能。附实战案例与安全调试建议,适合PX4开发者进阶学习。

weixin_30363981的博客 382

Jmeter入门:RESTful接口压测

1 安装JDK Jmeter 是基于Java,因此需要Java环境。网上安装JDK资料很多,在此不再累述。 2 安装Jmeter 从官网下载windows版安装包apache-jmeter-5.4.zip,解压到本地D:\apache-jmeter-5.4 2.1 修改环境变量 1)新增全局变量JMETER 2)修改CLASSPATH 在末尾添加: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar; 3)修改

JayLaiSCUT的博客 5710

用Linkboy玩转Arduino:3小时搞定智能倒车雷达(附仿真文件下载)

本文详细介绍了如何利用Linkboy图形化编程工具,在3小时内快速搭建一个基于Arduino的智能倒车雷达项目。通过仿真环境,初学者无需硬件即可学习超声波测距原理、报警逻辑设计,并完成从虚拟仿真到实体硬件的完整流程。文章提供了清晰的步骤、调试技巧及功能扩展思路,并附有仿真文件,是入门Arduino和智能硬件制作的绝佳实践指南。

weixin_29159441的博客 402

使用Jmeter测试Restful接口

一、添加线程组等元件 添加线程组 添加线程组,Jmeter执行是通过线程组进行驱动的,测试计划必须最少有一个线程组,选中Test Plan,点击右键,添加》Threads》线程组 添加用户参数 在线程组上添加用户参数,用户可以利用此元件进行参数设置,在取样器中进行参数化,用户(线程)在进行参数化取值时可以根据用户来区分,选中线程组,点击右键,添加》前置处理器》用户参数,填写调用...

jmeter相关技术交流 755

dreamerv3复现教程

由于dreamerv3存在很多版本冲突问题,所以很难直接使用和复现。

无人机飞啊飞啊飞 2831

Altium Designer 21 DRC检查:从新手到高手,这10个常见错误你踩过几个?

本文详细解析Altium Designer 21 DRC检查中的10个高频错误,包括间距违规、线宽违规、未连接网络等常见问题,并提供精准修复方案和实战技巧。通过分层诊断、智能规则设置和三维排查等方法,帮助工程师从新手进阶为高手,提升PCB设计效率和质量。

weixin_26873711的博客 221

JMeter - 如何测试REST API / 微服务

有许多方法和工具可用于测试REST API。当我需要测试REST API时,在查看了各种工具和选项之后,由于以下原因,我选择了JMeter。JMeter是免费和开源的。JMeter可以从CSV文件中直接读取您的测试数据。参数化非常简单。可以轻松地使用多组数据测试API。JMeter有一个功能强大的“ 响应提取器” -可用于从API响应中提取信息(JSON / XML /正则表达式),并在测试的后续请求中使用它。JMeter有大量的“ 断言 ” - 来验证API响应是否符合预期。

菜鸟学识的博客 1562

期货套利策略(二)

接上一篇期货套利策略,随着对期货套利策略的深入了解,我发现套利策略不是那么好做的。下面将会讲碰到的一些问题。 上一篇文章中没有考虑滑点的问题,这里我们把滑点问题考虑进去。这里先说一些天勤api的买入点,天琴的买入点是当前K线的收盘价。碰到数据传输问题,还有计算等各方面问题,实际情况是无法在当前K线的收盘价买入的。这里我们把这方面问题考虑进去,利用api.wait_update()调到下一个k线数据...

qq_31611005的博客 1711

如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试

表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受。能够充分证明这点的是主流 Web 2.0 服务提供商在接口设计中对 REST 的普遍采用 - 包括雅虎、谷歌以及脸谱 - 出于简单易用、以面向资源的模型发布自己的服务的偏好他们都已经抛弃了 SOAP 和基于 WSDL 的接口。在你必须要对你的 REST

Defonds 的专栏 1万+

Vue - 详细完美解决 ElementUI MessageBox “多次“ 弹框问题,让其无论执行多少次都只弹出来一次(常见于请求拦截器多次触发弹框,导致弹出来很多个)详细示例代码,保证完美解决!

vue如何防止ElementUIMessageBox多次弹框,vueelement弹框弹出来很多次怎么办,elementvueMessageBox解决执行多次后出现多次弹框的问题,elementUI如何阻止MessageBox多次弹出来,vue+element解决多个请求同时报错,弹出多个消息框message,饿了么组件库MessageBox弹框频繁弹出解决方法,vue调用MessageBox出现多次弹框,vueelementMessageBox怎么只弹出一次,vue之axios请求

🏆 前端领域优质创作者 8194

FineReport 动态列切换统计维度

目标: 自己选择统计维度进行数据的汇总统计数据集参数实现动态列。

Davina_yu的博客 1053

使用Jmeter应该如何进行http接口性能测试

使用Jmeter应该如何进行http接口性能测试

爱码小哥 483

Vue3 - 详细实现移动端H5网页调用摄像头拍照功能,微信公众号网页h5页面打开本地摄像头并点击按钮照相,vue3获取摄像头画面执行拍照保存,调整摄像头前置后置抓拍图片给用户展示或保存手机上传服务器

vue3,H5网页,手机移动端,vue3摄像头拍照,前端h5调用手机摄像头,移动端网页调用摄像头,H5实现手机拍照和选择上传,调用本地摄像头实现拍照,vue3调用摄像头拍照,手机浏览器开启摄像头并进行拍照,H5移动端网页中调用手机摄像头,H5实现web调用摄像头在线照相,vue3h5调用摄像头,微信公众号网页如何调用摄像头拍照,公众号H5页面实现打开摄像头照相,怎么生成临时图片,vue3项目调用摄像头实现拍照功能,摄像头打不开没反应,浏览器不兼容怎么办,摄像头权限不弹出,只能在本地运行,拒绝权限后怎么办,

🏆 前端领域优质创作者 1万+

使用Jmeter进行http接口性能测试

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后。

huace3740的博客 191

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

玩转Apache JMeter—测试HTTP接口篇

应一位粉丝的要求发此文章~ 1 什么是JMeter 官网:https://jmeter.apache.org Apache JMeter是由Apache开源的、100% 纯 Java 的应用程序,旨在对程序性能进行测试 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。 使用JMeter能够测试哪些功能: Web接口(包括HTTP、HTTPS) SOAP / REST Web 服务 FTP 通过 JDBC 的数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 -

做兴趣使然的Hero 758

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: SpringBoot集成Spring Data JPA保存和返回时间比北京时间早8小时
下一篇: ThreadLocal及内部类ThreadLocalMap源码
fysuccess
博客等级 码龄18年 6876粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值