2017-04-05 1 views
4

Gatling을 사용하여 웹 서비스 테스트를로드하려고합니다. 이건 내 build.sbtSBT를 통해 Gatling 테스트를 실제로 실행하는 방법

import io.gatling.sbt.GatlingPlugin 

val gatlingVersion = "2.2.4" 

val dependencies = Seq(
    "io.gatling" % "gatling-core" % gatlingVersion, 
    "io.gatling" % "gatling-http" % gatlingVersion 
) 

lazy val project = 
    Project("gattling-tests", file(".")) 
     .enablePlugins(GatlingPlugin) 
     .settings(
     javaOptions in Gatling := overrideDefaultJavaOptions("-Xmx4G"), 
     scalaVersion := "2.12.1", 
     libraryDependencies ++= dependencies 
    ) 

테스트 폴더에서 나는 시뮬레이션을 확장하고 내 시나리오와 http 요청을 가진 클래스를 만들었습니다.

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

class ShieldAuthLoadTests extends Simulation { 
    val httpConf = http 
     .baseURL("http://localhost:8080/api/1/") 
     .acceptHeader("application/json") 
     .contentTypeHeader("json") 

    val login = http("Login") 
     .post("login") 
     .formParam("username", "foo") 
     .formParam("password", "bar") 
     .check(status.is(200), jsonPath("$..response.id").ofType[String].saveAs("id")) 

    val get = http("get") 
     .get("/api/api1") 
     .header("token1", "$id") 
     .check(status.is(200), jsonPath("$..response").exists) 

    val scn = scenario("scn") 
     .exec(login) 
     .pause(3) 
     .exec(get) 

    setUp(scn.inject(atOnceUsers(10)).protocols(httpConf)) 
} 

내 희망은 내가 sbt gatling:test을 할 때는 개틀링 테스트를 실행이었다. 하지만 sbt gatling:test을 실행하면 테스트를 실행하지 않고 성공으로 끝납니다.

$GATLING_HOME/bin/gatling.sh 설명서에 나와 있지만 SBT를 통해 테스트하고 싶기 때문에 gatling.sh가 없습니다.

답변

5

비슷한 문제가 발생하면서 문서가 약간 일치하지 않습니다.

저는 항상 this에 내 프로젝트의 기반을두고 있습니다.

어쨌든 당신의 의존성에 문제가있는 것 같습니다. 대신 이것으로 변경해보십시오.

val dependencies = Seq(
    "io.gatling.highcharts" % "gatling-charts-highcharts" % "2.2.4" % "test,it", 
    "io.gatling"   % "gatling-test-framework" % "2.2.4" % "test,it" 
) 

또는 here을 참조하십시오.

관련 문제