目录

gatling测试工具用法介绍

测试工具gatling(加特林)

在学习Webflux响应式编程的过程中偶然听到了gatling这个负载测试工具,并且看着很简单。之前有听说过loadrunner和jmeter,并且使用过wrk这个小工具,但是没有一个详细完整的报告。因此看到这个工具的时候,就花了点时间在网上找资料学习了一下。这个文档只是为了记录我的学习过程。我是开发人员,因此不会关注太细,如有问题,请指正。

1、使用方式一

  • 下载 Download - Gatling Load and Performance testing

  • 目录结构

    • bin //命令
    • conf //配置文件
    • lib //类库
    • results //测试之后生成的报告地址
    • target 测试脚本编译目录
    • user-files //脚本目录
      • resource 脚本数据资源文件
      • simulations 脚本文件,脚本下文件目录以package方式
  • 下载完成之后simulations下有样例文件user-files/simulations/computerdatabase/BasicSimulation.scala

  • 执行样例

    • sh gatling.sh 执行之后可以选择需要执行的脚本。最后会在results下生成测试报告

2、使用方式二

方式二使用的maven进行测试,个人觉得这种方式更适合,代码可调试。比下载工具方式更简单

  1. 使用idea下载scala插件
  2. 下载完成新建maven项目,如图配置 最新参见:Maven Repository: io.gatling.highcharts » gatling-highcharts-maven-archetype
1
2
3
GroupId:io.gatling.highcharts
ArtifactId:gatling-highcharts-maven.archetype
Version:3.0.2

https://cdn.upyun.scemsjyd.com/u/2022/10/19/1666147268132

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
├── pom.xml
├── src
│   └── test
│       ├── resources
│       │   ├── bodies
│       │   ├── data
│       │   ├── gatling.conf
│       │   ├── logback.xml
│       │   └── recorder.conf
│       └── scala
│          ├── BasicSimulation.scala  //源码文件
│          ├── Engine.scala  //执行文件
│          ├── IDEPathHelper.scala
│          └── Recorder.scala
└── target
  1. 不使用artifact直接使用插件 如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<dependencies>
        <dependency>
            <groupId>io.gatling.highcharts</groupId>
            <artifactId>gatling-charts-highcharts</artifactId>
            <version>3.0.2</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>io.gatling</groupId>
                <artifactId>gatling-maven-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <simulationsFolder>src/main/java</simulationsFolder>
                    <simulationClass>com.scemsjyd.BaseSimulation</simulationClass>
                </configuration>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>

                        <configuration>
                            <jvmArgs>
                                <jvmArg>-Dgatling.http.ahc.connectTimeout=6000000</jvmArg>
                                <jvmArg>-Dgatling.http.ahc.requestTimeout=6000000</jvmArg>
                                <jvmArg>-Dgatling.http.ahc.sslSessionTimeout=6000000</jvmArg>
                                <jvmArg>-Dgatling.http.ahc.pooledConnectionIdleTimeout=6000000</jvmArg>
                                <jvmArg>-Dgatling.http.ahc.readTimeout=6000000</jvmArg>
                            </jvmArgs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>