玩转Apache JMeter—测试HTTP接口篇

简介: 玩转Apache JMeter—测试HTTP接口篇

1 什么是JMeter

官网:jmeter.apache.org

Apache JMeter是由Apache开源的、100% 纯 Java 的应用程序,旨在对程序性能进行测试 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。

使用JMeter能够测试哪些功能

  • Web接口(包括HTTP、HTTPS)
  • SOAP / REST Web 服务
  • FTP
  • 通过 JDBC 的数据库
  • LDAP
  • 通过 JMS 的面向消息的中间件 (MOM)
  • 邮件 - SMTP(S)、POP3(S) 和 IMAP(S)
  • 本机命令或 shell 脚本
  • TCP
  • Java 对象

2 为什么需要JMeter

  • 每个测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。
  • 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。
  • Jmeter 是一款使用Java开发的,主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用。

3 下载JMeter

下载地址:jmeter.apache.org/download_jm…

运行时需要环境:JDK8+

下载后的目录

网络异常,图片无法展示
|


主要使用到的目录及其作用

  • bin:启动文件目录
  • docs:相关文档

4 初步使用

总体使用流程

(1)新建测试计划

(2)启动被测试服务

(3)启动JMeter进行测试

(4)获取测试结果

4.1 使用JMeter的Hello World

4.1.1 编写被测试程序
package main
import (
   "fmt"
   "net/http"
)
// i 请求次数
var i int64
// RunHttp1 最简单的HTTP服务
func RunHttp1() {
   http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
      i += 1
      fmt.Println("请求次数:",i)
      w.Write([]byte("Hello Http!"))
   })
   http.ListenAndServe(":8080", nil)
}
func main() {
   RunHttp1()
}
复制代码
4.1.2 新建测试计划

(1)Windows下启动JMeter

bin>jmeter.bat
复制代码

(2)新建测试计划

网络异常,图片无法展示
|


(3)在测试计划下新建测试线程组

网络异常,图片无法展示
|


(4)在线程组下新建HTTP请求

网络异常,图片无法展示
|

请求HTTP接口时的配置

网络异常,图片无法展示
|


设置线程数和循环次数

网络异常,图片无法展示
|


4.1.3 启动JMeter进行测试

网络异常,图片无法展示
|


4.1.4 观察控制台输出

启动JMeter测试后我们观察控制台输出就能够清晰的发现JMeter的请求啦

4.2 使用测试报告

当然总看程序的控制台是很不专业的,因为我们这样只能用过控制台来观察,在实际的生产环境中是很难实现的,因此我们最好是有一个类似于测试报告的东西,当然JMeter也为我们准备了,他就是Listener,用于测试的监听和结果的显示,我们下面来实际演示下:

(1)新建Listener

网络异常,图片无法展示
|



(2)设置Lisenter名称

网络异常,图片无法展示
|


(3)启动测试,观察变化

网络异常,图片无法展示
|


4.3 性能和错误测试

(1)程序

package main
import (
  "fmt"
  "net/http"
  "time"
)
var i int64
// RunHttp1 最简单的HTTP服务
func RunHttp1() {
  http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
    i += 1
    fmt.Println("请求次数:", i)
    w.Write([]byte("Hello Http!"))
  })
  http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
    time.Sleep(time.Second * 1)
    i += 1
    fmt.Println("请求次数:", i)
    w.Write([]byte("Hi Http!"))
  })
  http.HandleFunc("/err", func(w http.ResponseWriter, r *http.Request) {
    i += 1
    if i%10 == 0 {
      http.Error(w, "err", 500)
    } else {
      w.Write([]byte("Err Http!"))
    }
    fmt.Println("请求次数:", i)
  })
  http.ListenAndServe(":8080", nil)
}
func main() {
  RunHttp1()
}
复制代码

(2)测试结果:

网络异常,图片无法展示
|


4.4 切换中文

如果英文版的用起来不是那么的顺手,可以切换成中文哈

网络异常,图片无法展示
|


5 小总结

本文仅讲述了最常用也是最简单的JMeter测试HTTP接口的功能,我们只需要根据需求填写我们需要测试的HTTP接口信息即可,并且通过不同种类的Listener可以实时的获取测试报告,能够帮助我们更好的分析出我们的接口标准。

最后给大家一个小提示哈:无论是测试自己的开发机器还是服务器,尽量谨慎测试,不要一上来就1W个线程直接跑,可能会给机器带来不太好的影响,请优雅一点。

今天的分享就到这里咯~


相关文章
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1302 0
|
监控 测试技术 Go
告别传统Log追踪!GOAT如何用HTTP接口重塑代码监控
本文介绍了GOAT(Golang Application Tracing)工具的使用方法,通过一个Echo问答服务实例,详细展示了代码埋点与追踪技术的应用。内容涵盖初始化配置、自动埋点、手动调整埋点、数据监控及清理埋点等核心功能。GOAT适用于灰度发布、功能验证、性能分析、Bug排查和代码重构等场景,助力Go项目质量保障与平稳发布。工具以轻量高效的特点,为开发团队提供数据支持,优化决策流程。
914 90
|
11月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2106 10
|
Linux C语言 iOS开发
C语言结合AWTK开发HTTP接口访问界面
这样,我们就实现了在C语言中使用libcurl和AWTK来访问HTTP接口并在界面上显示结果。这只是一个基础的示例,你可以根据需要添加更多的功能和优化。例如,你可以添加错误处理机制、支持更多HTTP方法(如POST、PUT等)、优化用户界面等。
733 82
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
2521 83
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1627 23
|
12月前
|
JSON 运维 网络协议
做短信接口时,http接口和cmpp接口怎么选?
本文介绍了短信接口中HTTP与CMPP协议的区别及适用场景,帮助开发者根据业务需求选择合适的接口类型。
1344 1
|
11月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
1344 0
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
XML 网络协议 程序员
Apipost接口调试全解:从HTTP到gRPC,程序员必备的“协议生存指南
Apipost是一款强大的接口调试工具,支持多种主流API协议。它涵盖HTTP/HTTPS、WebSocket、Socket.IO、gRPC、GraphQL、TCP及ISO8583金融报文等冷门协议。通过Body多样化、全局参数配置、性能分析等功能优化HTTP调试;提供WebSocket多消息存档与事件监听;gRPC支持服务反射和流式调试;GraphQL可自动生成Schema;TCP报文模板专业精准;SSE配置简单。此外,Apipost还具备环境变量、脚本加持和文档生成功能,是提升开发效率的全能工具。

推荐镜像

更多