当前位置: 首页 > article >正文

【项目实战】Apache JMeter HTTP 接口测试

Apache JMeter HTTP 接口测试脚本编写指南

在使用 JMeter 进行 HTTP 接口测试时,首先需要创建一个线程组以模拟用户行为。接着,添加 HTTP 请求,输入接口的 URL、路径、请求方法以及所需的参数。为了验证测试结果,通常会添加“查看结果树”监听器,以便在调用接口后查看返回值。

若需为接口请求添加 Header,可以在 HTTP 请求的“发送文件和 POST 数据”部分找到“添加”按钮,选择“Header”,然后输入相应的键值对。

对于 HTTP 请求中的 Cookie 设置,JMeter 提供了“Cookie Manager”组件,它可以自动管理服务器返回的 Cookie,并可以在发送请求时附带。在这里插入图片描述

Apache JMeter Webservice 测试脚本

进行 Webservice 测试通常从 SoapUI 开始,新建一个 SoapUI 项目并导入 WSDL 地址,从而获取 SOAP 请求报文、SOAPAction 和请求 URL。这些信息通常可以在 SoapUI 的 Raw 视图中找到。

在 JMeter 中,创建一个新的线程组,并添加一个 SOAP/XML-RPC Request 组件。将获取到的 URL、SOAPAction 和请求报文填入 SOAP 请求中。

JMeter 参数化

参数化的目的是为了方便管理经常变化的参数。JMeter 支持三种参数化方式:用户定义的变量、函数生成器和从文件中读取。

用户定义的变量适用于那些不经常变化的参数,如 IP 地址。在线程组中添加一个用户定义的变量,设定键值对,然后在脚本中通过 ${name} 形式引用变量。

函数生成器可以按照一定的规则生成数据,例如随机数、当前时间等。JMeter 的函数助手可以生成随机数(__Random)、当前时间(__time)和唯一 ID(__UUID)。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

从文件中读取数据涉及三个步骤:读取文件、提取文件内容中的参数并命名、使用这些值。在 JMeter 中,通过添加 CSV Data Set Config 组件实现这一功能。

JMeter 断言与关联

断言用于验证返回结果是否正确。如果返回结果与预期相符,则表明请求成功;否则,表明请求结果与预期不一致。关联则用于处理后续请求需要用到先前服务器返回结果的场景,通常通过正则表达式提取器完成。
在这里插入图片描述

JMeter 操作数据库 MySQL

操作 MySQL 数据库需要先导入 JDBC 的 jar 包,然后创建数据库连接配置,编写 SQL 并执行,最后查看结果。JMeter 中通过 JDBC Connection Configuration 组件来设置数据库连接。
数据库的url:jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true
在这里插入图片描述

在 Linux 下运行 JMeter 压测

为了在 Linux 系统中进行长时间的压力测试,可以将 JMeter 脚本在 Windows 上准备好,然后在 Linux 下运行。使用 JMeter 的 bin 目录下的 jmeter.sh 脚本,以命令行方式启动非图形界面模式。

sh jmeter.sh -n –t a.jmx -l res.jtl

-n代表以没有图形化界面启动,-t代表后面是测试脚本,a.jmx也就是我们做好的jmeter脚本,-l代表测试结果 res.jtl就是测试结果文件,查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了

JMeter 添加负载机

在进行高并发测试时,可能需要在多台机器上运行 JMeter 以分散负载。首先在负载机上启动 jmeter-server,然后在主控机的 jmeter.properties 文件中添加负载机的 IP 地址。Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。

jmeter 添加压力机:

1、先在其他的负载机(另外的电脑)上启动jmeter-server(jmeter-server.bat windows)
(jmeter-server.sh mac、linux)主控机和负载机

2、修改主控机jmeter的配置文件,找到remot_hosts,然后把负载机的ip加入到里面就好了remot_hosts=127.0.0.1,192.168.1.2:1099,192.168.1.3:1099默认jmeter-server的端口号是1099,如果说负载机上的端口号改了,那么你在这里也得改

3、启动时候要选择远程全部运行ps:如果有参数化文件,那么在负载机同样的位置上也得有一个参数化文件。


http://www.kler.cn/a/460318.html

相关文章:

  • 【VBA】EXCEL - VBA 遍历工作表的 5 种方法,以及注意事项
  • Elasticsearch DSL版
  • [算法] [leetcode-509] 斐波那契数
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(一)-递归实现指数型枚举、递归实现排列型枚举
  • Docker--Docker Container(容器) 之 操作实例
  • [极客大挑战 2019]Http 1
  • CP AUTOSAR标准之FlexRayDriver(AUTOSAR_SWS_FlexRayDriver)(更新中……)
  • ROS2+OpenCV综合应用--9. AprilTag标签码识别
  • 深度学习中的迁移学习:如何利用现有模型加速训练?
  • Rust语言的数据库编程
  • 按照人们阅读Excel习惯来格式化BigDecimal
  • 头歌实训数据结构与算法-二叉树及其应用(第9关:二叉树的顺序存储及基本操作)
  • 云电脑市场正在爆发!2025新风口出现了?
  • 【QT】QT 的窗口坐标 信号与槽
  • opencv实现KNN算法识别图片数字
  • 网络基础入门到深入(3):网络协议-HTTP/S
  • 时间序列预测算法---LSTM
  • 网络爬虫性能提升:requests.Session的会话持久化策略
  • HTML——38.Span标签和字符实体
  • 优秀的 Verilog/FPGA开源项目介绍(十七)- AXI
  • 【翻译】优化加速像素着色器执行的方法
  • 打印进度条
  • CentOS系统的安装配置
  • 互联网路由架构
  • Spring源码分析之SpringBoot的自动配置和ComponentScan
  • 【嵌入式硬件】直流电机驱动相关