本文主要介绍“加特林的相关知识点有哪些”。在日常操作中,相信很多人对加特林的相关知识点有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“加特林相关知识点有哪些”的疑惑!接下来,请和边肖一起学习!
在讨论加特林之前,首先要了解理论知识,两种类型的性能测试,负载测试和压力测试:
负载测试(Load Testing):负载测试是一种主要测试软件系统是否能满足文档设计要求的测试,如软件在一定时间内支持的最大并发用户数、软件请求的错误率等。主要测试软件系统的性能。
压力测试(Stress Testing):压力测试主要测试硬件系统是否达到需求文档设计的性能目标,如cpu利用率、内存利用率、磁盘I/O吞吐率、网络吞吐量等。在一定时期内,压力试验和载荷试验最大的区别就是试验目的不同。
Gatling 简介
加特林是一个强大的负载测试工具。它是为易用性、可维护性和高性能而设计的。
开箱即用,加特林对HTTP协议有很好的支持,使其成为负载测试任何HTTP服务器的首选工具。因为核心引擎实际上是协议不可知的,所以它可以完全支持其他协议。例如,加特林目前也提供JMS支持。
只要底层协议(比如HTTP)能够以非阻塞的方式实现,那么Gatling的架构就是异步的。这种架构可以将虚拟用户实现为消息,而不是专用线程。因此,运行数千个并发虚拟用户不是问题。
00-1010创建Spring Boot应用程序,并提供RESTful API进行测试。
https://github.com/ChinaSilence/gatling-test.git
如果您有自己的Web应用程序要测试,可以忽略这一步!
启动数据库
Github中的示例代码依赖于PostgresSQL,因此启动数据库最简单的方法是使用Docker:
dockrrun-d \
- namepostgres\
-ePOSTGRES_DB=gatling\
-ePOSTGRES_USER=gatling\
-ePOSTGRES _ PASSWORD=Gatling 123 \
-p5432:5432\
postgres
在IDEA中安装scala环境
安装scala插件
安装scala SDK
编写性能测试脚本。
每个聚集测试都应该继承Simulation类,在该类中,您可以使用Gatling Scala DSL声明场景列表。这里的目标是同时运行30个客户端和发送1000个请求。首先,客户端将通过调用POST /persons方法向数据库添加数据;然后,尝试通过调用get/people/{id}方法来查询ID为的数据。
class apigatlingsimulationtestextendssimulation {
valscn=场景(' AddAndFindPersons ')。重复(1000,' n ')
n
bsp; 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"))
}
运行 Spring Boot 应用
运行测试脚本
配置 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
查看测试报告
全局报告
单个接口明细报告
到此,关于“Gatling的相关知识点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84804.html