Gatling的相关知识点有哪些

发布时间:2021-11-12 09:11:11 作者:iii
来源:亿速云 阅读:169

这篇文章主要介绍“Gatling的相关知识点有哪些”,在日常操作中,相信很多人在Gatling的相关知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Gatling的相关知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在讨论 Gatling 之前,先了解下理论知识,性能测试的两种类型,负载测试和压力测试:

Gatling 简介

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 插件

    Gatling的相关知识点有哪些

    安装 scala SDK

    Gatling的相关知识点有哪些

  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 应用

    Gatling的相关知识点有哪些

  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


    Gatling的相关知识点有哪些

  7. 查看测试报告

    全局报告

    Gatling的相关知识点有哪些

    单个接口明细报告

    Gatling的相关知识点有哪些

    Gatling的相关知识点有哪些

    Gatling的相关知识点有哪些

    Gatling的相关知识点有哪些

到此,关于“Gatling的相关知识点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. JVM相关的知识点有哪些
  2. React的相关知识点有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

gatling

上一篇:exp/imp中如何实现远程导出操作

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》