원래는 ngrinder를 이용하려 했으나 아직 Java 17을 지원하지 않아서 지원하기 전까지 사용은 잠정 중단하려고 한다.
그래서 또다른 성능 테스트 툴인 Gatling을 사용해보자.
가이드 문서
설치
사용법
위의 설치링크를 통해 설치하고 압축을 풀면 위와 같은 폴더들이 나온다.
bin - 부하 테스트에 필요한 도구
results - 결과 저장소
user-files - 부하 테스트 스크립트를 저장할 폴더
우선은 user-files/simulations 밑에 Scala 파일을 하나 만들어주자.
아래는 Scala 파일 내용이며 127.0.0.1:8080/test2에 대한 요청을 한꺼번에 10명의 사용자가 테스트 하는거라고 보면된다.
파일 이름은 test.scala로 해주면 된다.
package test
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
class RecordedSimulation extends Simulation {
val httpProtocol = http("testSimaulation")
.get("http://127.0.0.1:8080/test2")
.header("Client-Version", "1")
val scn = scenario("Scenario1")
.exec(httpProtocol)
setUp(
scn.inject(atOnceUsers(10))
)
}
그리고 bin 폴더로 이동해서 gatling.bat을 실행하면 아래와 같이 실행되는데
우선 1을 눌러주고 우리가 저장했던 test.scala 파일을 실행하기 위해 다시 1을 누른다.
성능 측정 결과
그럼 위와 같이 결과가 나오고 result 폴더에 html 파일로도 저장된다.
레코드 녹화 기능
bin 폴더에는 gattling.bat 파일말고도 recoder.bat 파일도 존재한다.
이 기능은 Scala 언어로 스크립트를 작성하기 힘들 때 직접 사이트에 요청을 하면 요청한 내역을 바탕으로 스크립트를 만들어주는 도구다.
초기 화면은 위와 같은데, 내 로컬호스트 개발 포트가 8080이라고 해서 위의 포트를 8080으로 바꿔주는 것이 아니다.
우선 크롬의 프록시 설정으로 들어간다.
여기서 프록시 서버를 위와 같이 내 로컬 호스트와 포트번호를 입력해준다.
(127.0.0.1이나 localhost는 잘 작동이 안되는 듯 했다)
그러고나면 인터넷 기능이 마비가 되면서 내 로컬 호스트에 요청한 내역이 기록이 된다.
기록된 스크립트는 user-files/simulations 폴더에 저장된다.
'🗂️ Etc' 카테고리의 다른 글
리틀의 법칙 (0) | 2024.03.18 |
---|---|
인텔리제이 업데이트로 느낀 엔지니어의 가치관 (1) | 2024.02.12 |
구글의 기업 문화 - 성과와 보상에 대한 처리 방식 (0) | 2023.09.02 |
디자인 패턴 (0) | 2023.08.06 |
뇌졸중 후 동측 반맹증 및 편측 공간 무시 환자를 위한 재활 치료 프로그램 (0) | 2023.07.05 |