Gatling 기본기(sbt pluggin으로 실행하기 전)

이것은 여기. README의 복제품이다.더 놀라운 방법을 생각하고 있습니다...

Gatling


START PROJECT


If you use sbt 0.13.13 or later, you can use sbt new command for initialize sbt project.
$ sbt new sbt/scala-seed.g8
....
Minimum Scala build.

name [My Something Project]: my-gatling-sample

Template applied in ./my-gatling-sample 

reference: sbt new

build.sbt

build.sbt에서 다음과 같은 내용을 보충한다.
// build.sbt
scalacOptions := Seq(
  "-encoding", "UTF-8", "-target:jvm-1.8", "-deprecation",
  "-feature", "-unchecked", "-language:implicitConversions", "-language:postfixOps"
)

libraryDependencies ++= Seq(
  "io.gatling.highcharts" % "gatling-charts-highcharts" % "2.3.0" % "test",
  "io.gatling"            % "gatling-test-framework"    % "2.3.0" % "test"
)

enablePlugins(GatlingPlugin)
gatling-test-frame work는 Gatling을 실행하기 위한 프로그램 라이브러리입니다.
gatling-charts-high charts는 자바스크립트 그래프 라이브러리를 기반으로 한 가틀링을 위한 라이브러리입니다.나는 결과의 보고가 유용하다고 생각한다.

plugins.sbt

plugins.sbt에gatling의pluggin에 대한 정보를 기록합니다.
// plugins.sbt
addSbtPlugin("io.gatling" % "gatling-sbt" % "2.2.2")

Write Test Scenario


// src/test/scala/mytest/MyBasicSimulation.scala
package mytest

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class MyBasicSimulation extends Simulation {

  val httpProtocol = http
    .baseURL("http://localhost:8080") // Here is the root for all relative URLs
    .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") // Here are the common headers
    .acceptEncodingHeader("gzip, deflate")
    .acceptLanguageHeader("en-US,en;q=0.5")
    .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")

  val scn = scenario("My First Scenario") // A scenario is a chain of requests and pauses
    .exec(http("request_1")
      .get("/"))

  setUp(scn.inject(atOnceUsers(1)).protocols(httpProtocol))
}
상기 테스트 대상의 응용 프로그램이 http://localhost:8080에서 시작됩니다.
여기서, 우리는nginx 서버로Tettle에 서서 실험을 진행하기로 결정했다.
시뮬레이션은'이 nginx 서버의 루트/로 한 사용자만 접근할 수 있다'는 간단한 방법입니다.
docker run --rm -p 8080:80 nginx 

execute simulation


# start sbt
$ sbt
sbt:my-gatling-sample> 

# Run all simulations
> gatling:test

# Run a single simulation
> gatling:testOnly mytest.MyBasicSimulation

# List all tasks
> tasks -v gatling
  • example
  • sbt:my-gatling-sample> gatling:testOnly mytest.MyBasicSimulation
    ....
    Please open the following file: /Users/sudachi/projects/my-gatling-sample/target/gatling/mybasicsimulation-1607150219812/index.html
    [info] Simulation MyBasicSimulation successful.
    [info] Simulation(s) execution ended.
    [success] Total time: 11 s, completed 2020/12/05 15:37:06
    

    View Test Report


    seetarget/gatling(최신...)

    Use Giter8


    You can use our Giter8 template to bootstrap a new sbt project:
    sbt new gatling/gatling.g8
    
  • GITER8 TEMPLATE
  • Links

  • SBT PLUGIN
  • sbt 작업에서 로드 테스트 도구를 실행하는 Gatling
  • gatling/gatling-sbt-plugin-demo - github
  • gatling/gatling-sbt-plugin - github
  • 좋은 웹페이지 즐겨찾기