Java的HTTP接口测试框架Gatling

news/2025/3/10 5:55:23/文章来源:https://www.cnblogs.com/somefuture/p/18624127

之前讲过的《JHM》是一个java的基准测试框架,一般用于测试jdk里的API。如果要测试http接口,可以使用Gatling。

你可能用过JMeter,也是可以的

原生的Gatling是基于代码测试的,没有UI。你需要创建一个maven项目,或者下载官方的例子:https://github.com/gatling/gatling-js-demo/archive/refs/heads/main.zip 。

官方文档参考:https://docs.gatling.io/reference/install/oss/

配置

打开这个例子项目,找到类 ComputerDatabaseSimulation 进行修改。

比如我想测试 http://localhost:8080/unified-list-service/dpa/landing 这个地址。配置如下:

import io.gatling.javaapi.core.ScenarioBuilder;
import io.gatling.javaapi.core.Simulation;
import io.gatling.javaapi.http.HttpProtocolBuilder;import static io.gatling.javaapi.core.CoreDsl.atOnceUsers;
import static io.gatling.javaapi.core.CoreDsl.constantUsersPerSec;
import static io.gatling.javaapi.core.CoreDsl.scenario;
import static io.gatling.javaapi.http.HttpDsl.http;public class ComputerDatabaseSimulation extends Simulation {HttpProtocolBuilder httpProtocol =http.baseUrl("http://localhost:8080/unified-list-service/dpa").acceptHeader("*/*");ScenarioBuilder myScenario = scenario("My Scenario").exec(http("Request pure").get("/landing"));{setUp(myScenario.injectOpen(constantUsersPerSec(300).during(10))).protocols(httpProtocol);}
}

这个配置的意思是每秒生成300个请求,连续生成10秒,共计3000个请求。

如果想直接生成这3000个请求,可以使用

setUp(myScenario.injectOpen(atOnceUsers(3000))).protocols(httpProtocol);

setUp可以接受多个场景,比如

        setUp(myScenario1.injectOpen(constantUsersPerSec(300).during(10)), myScenario2.injectOpen(atOnceUsers(300))).protocols(httpProtocol);

每个场景也可以执行多种请求,比如:

    ScenarioBuilder myScenario1 = scenario("My Scenario").exec(http("Request pure").get("/landing"), http("Request swid").get("/landing?swid={d80a2714}")).exec(http("Request 1").get("/landing?date={today}"));

运行

执行命令mvn gatling:test
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/857491.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 993 (Div. 4)(补题)

只选择对自己有意义的题目Codeforces Round 993 (Div. 4)只选择对我有价值的题目记录E. Insane Problem 题目描述 给定五个整数 \(k\),\(l_1\),\(r_1\),\(l_2\) 和 \(r_2\),Wave 希望你帮助她计算满足以下所有条件的有序对 \((x, y)\) 的数量:\(l_1 \leq x \leq r_1\)。 \…

函数是什么

建设 邮政 中国工商银行

【多线程】原子类

JDK原子类基于CAS轻量级原子操作实现,使得程序运行效率变得更高。 (1)基本原子类基本原子类的功能是通过原子方式更新Java基础类型变量的值。基本原子类主要包括以下三个: AtomicInteger:整型原子类。 AtomicLong:长整型原子类。 AtomicBoolean:布尔型原子类。 (…

我的世界服务端插件安装 AuthMe用户登录插件安装

Minecraft服务端插件安装-AuthMe用户登录插件安装 需要准备AuthMe插件AuthMe-5.6.0.jar用户登录插件例如使用/register <密码> <确认密码>进行注册,使用/login <密码>进登录 AuthMe插件AuthMe 是一个广泛用于 Minecraft 服务器的插件,主要用于账户验证和注…

【数理统计】假设检验

目录假设检验的概念单个总体正态分布的假设检验正态总体均值 \(\mu\) 的假设检验正态总体方差 \(\sigma^2\) 的假设检验两个总体正态分布的假设检验(略)例题 假设检验的概念 【定义】\(H_0\) 称为原假设,\(H_1\)称为对立假设,它们的内容相互对立。 使原假设 \(H_0\) 得以接…

PCIe扫盲——PCIe总线事务层入门(一)

在介绍事务层之前,首先简单地了解一下PCIe总线的通信机制。假设某个设备要对另一个设备进行读取数据的操作,首先这个设备(称之为Requester)需要向另一个设备发送一个Request,然后另一个设备(称之为Completer)通过Completion Packet返回数据或者错误信息。 在PCIe Spec中…

2024 新版DataGrip安装使用教程(附激活至2099年,以及常见问题处理)

DataGrip 简介 在数据库管理与开发领域,JetBrains 推出的 DataGrip 无疑是一款备受瞩目的工具。它以其对多种数据库引擎的广泛支持而著称,为开发人员和数据库管理员提供了一站式的便捷解决方案。 DataGrip 支持 MySQL、PostgreSQL 等开源数据库,能让使用这些流行数据库的开发…

解锁宠物用品行业的市场密码:看板软件如何助力精准用户调研?

看板软件可以通过数据可视化与分析、供应链优化、售后管理与服务提升以及品牌建设与用户互动等方式,为宠物用品行业解决用户调研中的痛点问题。然而,需要注意的是,看板软件只是解决方案的一部分,企业还需要结合实际情况和市场需求进行综合考虑和实施。宠物用品行业用户调研…

惊!冬至物流大忙,哪类办公软件能增强团队应急能力?

一、前言 冬至期间,物流行业面临着巨大的挑战与机遇。电商平台的促销活动让订单如潮水般涌来,物流 J 人团队需要高效协作,确保每一个包裹都能准确无误且迅速地送达客户手中。在这个关键时期,合适的可视化团队协作办公软件成为了提升工作效率与个人学习效率的得力助手。本文…

触摸芯片之滑条滚轮方案

完美解决了传统用户界面操作复杂和触摸响应异常的问题触摸芯片的常见应用形式:触摸按键模式 触摸滚轮模式 触摸滑条模式触摸按键-触摸开关、控制面板的多按键触摸 触摸滑条/滚轮-触摸调光、调音量、速度、进度、大小家电的状态 智慧家居必备神器——触摸芯片,触摸反应灵敏,无…

DL00358-基于YOLOv8的停车空位检测代码含数据集

YOLOv8(You Only Look Once Version 8)是基于深度学习的目标检测算法,近年来在图像处理领域取得了显著进展,尤其在实时目标检测任务中表现出色。停车空位检测作为计算机视觉应用中的一个重要研究方向,旨在通过智能化系统识别和判断停车场内的空闲车位,为车主提供实时的停…