반응형

h3. Gatling ???

 

- Gatling은 오픈 소스 부하 테스트 프레임워크로 Scala로 개발되었으며, Async Http Client와 Netty, 그리고 Akka를 사용한다.

- Gatling은 여러 개의 테스트를 실행하는 것이 가능하며 복잡한 시뮬레이션도 테스트 가능하다.

- Gatling은 무료 성능 측정 툴로 강력한 report기능을 제공해 주는 장점이 있습니다.

 

간단하게 사용법에 대해서 설명하도록 하겠습니다.

 

 

h5. \[ 시작전 설치 \]

 

[참고] Gatling을 사용을 위해서는 자바가 설치되어 있어야함[http://gatling.io/#/resources/download]

들어가서 zip파일을 받아 압축을 풀어줍니다.

 

 

 

h5. *1. Gatling 디렉터리 구조*

 

/bin 에는 스크립트를 생성(녹화)하는 recorder.sh와 스크립트를 실행하는 gatling.sh 파일이 있고

 

/conf에는 설정 파일이, /lib에는 라이브러리가,

 

/results에는 스크립트를 실행한 결과 페이지(HTML)가,

 

마지막으로 /user-files에는 녹화한 스크립트 파일(scala)과 데이터 파일이 들어 있습니다.

테스트 데이터 파일은 data 폴더에, 스크립트 파일은 simulations 폴더에 있고, 각각이 클래스 패스가 잡혀 있으니 구조에 맞춰 파일을 위치시키면 됩니다.

 

 

 

 

h5. *2. 스크립트 작성*

/user-files/simulations 안에서 동작시킬 스크립트를 작성합니다.

brooklynGatlingTest.scala 가 테스트를 위해 작성한 스크립트 입니다.

 

 

 

스크립트 내용은

{code:scala}

import io.gatling.core.Predef._

import io.gatling.http.Predef._

import scala.concurrent.duration._

 

class BrooklynGatlingTest extends Simulation {

   val httpProtocol = http

                .baseURL("http://10.161.0.28:8080")       // 테스트할 base URL

                .acceptCharsetHeader("ISO-8859-1,utf-8;q=0.7,*;q=0.7")

                .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")

                .acceptEncodingHeader("gzip, deflate")

                .acceptLanguageHeader("en-US,en;q=0.5")

                .disableFollowRedirect

 

  val scn = scenario("Brooklyn DB select Test Scenario")

    .exec (

          http ("request_1" )

        .get ( "/randomAdid" )  // 테스트하고자하는 페이지 URI

         .check(status.is (200))

        )

 

     setUp(

     scn.inject(rampUsers(100) over (1 seconds))  // 1초에 100명의 유저

     ).protocols(httpProtocol)

}

{code}

자세한 옵션 및 사용법은 아래 링크를 참고하시면 좋을 것 같습니다.

\[ 참고링크 \][https://greencrayon00.wordpress.com/2015/11/01/%EA%B0%9C%ED%8B%80%EB%A7%81gatling%EC%9C%BC%EB%A1%9C-%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0-1%EB%B6%80/]

 

 

 

 

h5. *3. 테스트하기*

작성한 스크립트로 실제 테스트를 진행해보도록 합시다.

테스트는 bin/ 디렉터리로 이동해 ./gatling.sh 스크립트를 실행합니다.

해당 스크립트를 실행하게되면 컴파일된 파일의 목록을 보여줍니다.

 

 

 

위와 같이 뜨면 brooklynGatlingTest가 0번째 목록에 있기때문에

콘솔에 0을 치고 enter.

 

Simulation BrooklynGatlingTest started가 뜰때까지 enter.

 

테스트가 수행되는 과정이 보이게 됩니다.

 

 

테스트가 완료되게 되면 테스트 결과를 리포트로 받아보실 수 있습니다.

 

 

 

h5. *4. 리포트확인*

리포트트는 result 디렉터리에서 확인가능하고 테스트별 디렉터리가 생겨납니다.

테스트 디렉터리내의 index.html을 열어보시며 테스트 결과를 볼 수 있습니다.

 

 

 

 

 

*자세한 설정 및 옵션은 아래 url 참고부탁드립니다.*

[http://gatling.io/docs/2.2.3/]

반응형

+ Recent posts