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”,输入执行脚本对应的数字;没有描述可直接按回车键

     

 

 

   

     

     

posted @ 2021-07-08 13:13  itur  阅读(809)  评论(0)    收藏  举报