共计 2246 个字符,预计需要花费 6 分钟才能阅读完成。
本篇内容主要讲解“Gatling 怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Gatling 怎么使用”吧!
在讨论 Gatling 之前,先了解下理论知识,性能测试的两种类型,负载测试和压力测试:
** 负载测试(Load Testing):** 负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
** 压力测试(Stress Testing):** 压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的 cpu 利用率,内存使用率,磁盘 I / O 吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
Gatling 简介
Gatling 是一个功能强大的负载测试工具。它是为易用性、可维护性和高性能而设计的。
开箱即用,Gatling 带有对 HTTP 协议的出色支持,使其成为负载测试任何 HTTP 服务器的首选工具。由于核心引擎实际上是协议不可知的,所以完全可以实现对其他协议的支持,例如,Gatling 目前也提供 JMS 支持。
只要底层协议(如 HTTP)能够以非阻塞的方式实现,Gatling 的架构就是异步的。这种架构可以将虚拟用户作为消息而不是专用线程来实现。因此,运行数千个并发的虚拟用户不是问题。
Gatling 快速入门实践
1、创建 Spring Boot 应用,提供 RESTful API,以供测试 https://github.com/ChinaSilence/gatling-test.git
如果有自己测试的 Web 应用可以忽略本步骤!
2、启动数据库
Github 中的示例代码依赖了 PostgresSQL,所以要先启动数据库,最简单的方式当然是用 Docker 咯:
docker run -d \
--name postgres \
-e POSTGRES_DB=gatling \
-e POSTGRES_USER=gatling \
-e POSTGRES_PASSWORD=gatling123 \
-p 5432:5432 \
postgres
3、在 IDEA 中安装 scala 环境
安装 scala 插件
安装 scala SDK
4、编写性能测试脚本
每一个 Gatling 测试都要继承 Simulation 类,在里面你可以使用 Gatling Scala DSL 来声明一个场景列表。这里的目标是运行 30 个客户端,同时发送 1000 次请求。首先,客户端通过调用 POST /persons 方法将添加数据到数据库中;然后,尝试通过调用 GET /persons/{id} 方法使用 id 来查询数据。
class ApiGatlingSimulationTest extends Simulation { val scn = scenario( AddAndFindPersons).repeat(1000, n) {
exec( http( AddPerson-API)
.post(http://localhost:8080/persons)
.header(Content-Type , application/json)
.body(StringBody( { firstName : John${n} , lastName : Smith${n} , birthDate : 1980-01-01 , address : {country : pl , city : Warsaw , street : Test${n} , postalCode : 02-200 , houseNo :${n}}} ))
.check(status.is(200))
).pause(Duration.apply(5, TimeUnit.MILLISECONDS))
}.repeat(1000, n) {
exec( http( GetPerson-API)
.get(http://localhost:8080/persons/${n} )
.check(status.is(200))
)
}
setUp(scn.inject(atOnceUsers(30))).maxDuration(FiniteDuration.apply(10, minutes))
}
5、运行 Spring Boot 应用
6、运行测试脚本
配置 Maven 插件参数
build
plugins
plugin
groupid io.gatling /groupid
artifactid gatling-maven-plugin /artifactid
version ${gatling-plugin.version} /version
configuration
!-- 测试脚本 --
simulationclass com.anoyi.test.ApiGatlingSimulationTest /simulationclass
!-- 结果输出地址 --
resultsfolder /Users/admin/code/gatling /resultsfolder
/configuration
/plugin
/plugins
/build
执行测试
mvn gatling:execute
7、查看测试报告
全局报告
单个接口明细报告
到此,相信大家对“Gatling 怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!