IDEA创建Gatling项目
1、创建 Gatling 项目
1) 新建项目时,选择Maven,勾选 “Create from archetype”,点击 “Add Archetype”;填写以下信息:
groupId : io.gatling.highcharts
artifactId : gatling-highcharts-maven-archetype
version : 3.6.0

或者在 C:\Users\${user}\.IntelliJIdea2018.1\system\Maven\Indices\UserArchetypes.xml 文件中天啊及以下信息
<archetype groupId="io.gatling.highcharts" artifactId="gatling-highcharts-maven-archetype" version="3.6.0" />

新增、删除archetype都需要 重启IDEA
2) 选中刚添加的 archetype,点击next;输入项目 groupId、artifactId,Maven便会自动创建 Gatling项目

3) pom.xml 配置测试文件夹路径
Engine 文件需在该目录下,不然会报错 “错误: 找不到或无法加载主类 Engine”

4) Gatling打印日志支持logback.xml;我的项目自动生成是没有这个的,会打印 DEBUG 日志
不想看大量日志,可把Gatling安装包的~/conf/logback.xml 加到 项目的resources目录下,运行时会自动读取配置
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern> </encoder> <immediateFlush>false</immediateFlush> </appender> <logger name="io.gatling.http.engine.response" level="INFO" /> <root level="INFO"> <appender-ref ref="CONSOLE" /> </root> </configuration>
2、编写执行脚本,Gatling支持Scala语言
1) IDEA下载 SCala 插件

2)、本地安裝好Scala
3)、IDEA 的 Project Structure 添加 Liabrariers
点击 “+” ,选择 Scala SDK;点击弹窗的 “Browser” 选择本地已安装好的 Scala

选择应用的项目,一直点击“OK”;则可添加Scala脚本


3、简单脚本
package mySimulations
import scala.concurrent.duration._ import io.gatling.core.Predef._ import io.gatling.http.Predef._ class haha extends Simulation { object Echo { /** 读取文件信息, batch(200)可指定缓存行数 */ val feeder = csv("accounts_HB.csv").batch.random // default is queue, so for this test, we use random to avoid feeder starvation val echo = feed(feeder).exec( http("echo") .post("/echo") .headers(Map( "param1"->"${param1}", "param2"->"${param2}" )) .body(StringBody( Map( "key1"->"value1", "key2"->"${value2}" ).toString() )) ) } /** 设置http公共数据 */ val httpProtocols = http .baseUrl("http://gateway-test.belle.net.cn") .acceptHeader("application/json, text/plain, */*;charset=UTF-8") .contentTypeHeader("application/json;charset=UTF-8") /** 创建场景 */ val scn = scenario("testEcho").exec(Echo.echo) /** 执行 */ setUp( scn.inject(rampUsers(30).during(30.seconds)) ).protocols(httpProtocols).throttle(
reachRps(200).in(10.seconds),
holdFor(10.seconds)
)
}
4、执行
运行 “Engine”,输入执行脚本对应的数字;没有描述可直接按回车键


浙公网安备 33010602011771号