Gatling 자동화 로드 테스트 사용 - 속편!
6105 단어 automationgatlingtestingtutorial
나는 성능 테스트의 일반적인 개술부터 시작하여Gatling 기록기를 사용하여Gatling 스크립트를 구축하기 시작했다.이 예시에서 우리는 Gatling 패키지를 사용했지만 또 다른 방법이 있다.
Gatling bundle는 기업 환경에서 Gatling을 사용할 때 진정한 도구가 아니다.Gatling은 Maven, sbt, Gradle 등 구축 도구와 함께 사용할 수 있다.Maven 원형을 사용하여 새로운 Maven 프로젝트를 시작합니다.
Gatling을 위한 새 프로젝트 시작
IDE를 사용하여 원형을 사용하여 새 항목을 만들 수 있지만 명령줄에서 실행하기만 하면 됩니다.
mvn archetype:generate -DarchetypeGroupId=io.gatling.highcharts -DarchetypeArtifactId=gatling-highcharts-maven-archetype
그룹Id,artifactId,version,package를 입력하라는 메시지가 표시됩니다.선택을 확인하면 새 항목이 생성됩니다.그런 다음 Scala SDK를 설정해야 할 수도 있습니다.
src/test
폴더를 테스트 소스 루트 디렉터리로 표시해야 할 수도 있습니다.
pom.xml
파일을 보십시오.거기서 가틀린의 종속관계를 보게 될 거야.
실행 레코더
내 컴퓨터에서, 나는 게틀린 가방 bin
폴더에 있는 녹음기를 켰다.aven 프로젝트를 사용하면 src/test/resources/Recorder.scala
을 실행하여 열 수 있습니다.몇 초 후에, 스크립트를 기록하는 데 사용할 수 있는 Recorder 유틸리티를 볼 수 있을 것입니다.일단 열면, 기록기의 기능은 내가 전에 설명한 것과 같다.레코더 유틸리티는 다음과 같습니다.
나는 방금 Maven 프로젝트에서 기록기를 실행하는 방법을 보여 주었다.이제 녹음기를 사용할 때가 됐어요, 그렇죠?아니야, 줄거리가 왜곡됐어!
기록기는 실행할 스크립트를 만드는 데 사용할 수 있지만, 생성된 코드가 무엇을 하고 있는지 이해하는 것은 당연히 중요하다.나는 녹음기만으로는 네가 가틀린에 대해 깊이 있게 이해하기에는 부족하다고 생각한다.우리는 녹음기를 사용하지 않고 처음부터 스크립트를 만듭니다.(녹음기에 대한 프레젠테이션은 을 참조하십시오.)
처음부터 첫 번째 스크립트를 작성하다
mvn archetype:generate -DarchetypeGroupId=io.gatling.highcharts -DarchetypeArtifactId=gatling-highcharts-maven-archetype
내 컴퓨터에서, 나는 게틀린 가방
bin
폴더에 있는 녹음기를 켰다.aven 프로젝트를 사용하면 src/test/resources/Recorder.scala
을 실행하여 열 수 있습니다.몇 초 후에, 스크립트를 기록하는 데 사용할 수 있는 Recorder 유틸리티를 볼 수 있을 것입니다.일단 열면, 기록기의 기능은 내가 전에 설명한 것과 같다.레코더 유틸리티는 다음과 같습니다.나는 방금 Maven 프로젝트에서 기록기를 실행하는 방법을 보여 주었다.이제 녹음기를 사용할 때가 됐어요, 그렇죠?아니야, 줄거리가 왜곡됐어!
기록기는 실행할 스크립트를 만드는 데 사용할 수 있지만, 생성된 코드가 무엇을 하고 있는지 이해하는 것은 당연히 중요하다.나는 녹음기만으로는 네가 가틀린에 대해 깊이 있게 이해하기에는 부족하다고 생각한다.우리는 녹음기를 사용하지 않고 처음부터 스크립트를 만듭니다.(녹음기에 대한 프레젠테이션은 을 참조하십시오.)
처음부터 첫 번째 스크립트를 작성하다
src/test/scala
폴더에 scripts
이라는 새 패키지를 만듭니다.HelloGatling
이라는 가방에 새 Scala 클래스를 만들고 편집하기 위해 엽니다.이것은 우리의 대본이 될 것이다.모든 Gatling 스크립트는 2개의 가져오기가 필요하므로 클래스에 추가합니다.
import io.gatling.core.Predef._
import io.gatling.http.Predef._
클래스는 Gatling 시뮬레이션 클래스를 확장하여 Gatling 스크립트로 만들어야 합니다.
class HelloGatling extends Simulation {
}
지금 우리는 수업을 시작할 준비를 하고 있다.http 설정부터 기본 URL을 정의하고 헤더를 설정하여 json 형식의 데이터를 보냅니다.
val httpConfig = http
.baseUrl("http://computer-database.gatling.io")
.header("Accept", "application/json")
현재, 우리는 장면을 구축할 준비가 되어 있으며, 이 장면은 우리의 스크립트와 응용 프로그램이 진행하는 모든 상호작용을 설명할 것이다.이 프레젠테이션에 대해, 우리의 스크립트는 Gatling 예시 사이트를 방문할 것이다.먼저 홈 페이지를 방문하십시오.
val myScenario = scenario("Add a new computer scenario")
.exec(
http("load the Home Page")
.get("/")
)
이 코드를 통해 우리는 하나의 절차를 가진 장면을 만들었다.우리는 장면과 절차의 텍스트 묘사를 제시했다.이 묘사들은 《관세무역총협정》의 보고서에 나타날 것이다.get
문장으로 홈 페이지를 방문합니다.이제 남은 단계를 추가하여 [1] 새 컴퓨터 추가 페이지에 접근한 다음 [2] 새 컴퓨터를 발표할 수 있습니다.전체 장면은 다음과 같습니다.
val myScenario = scenario("Add a new computer scenario")
.exec(
http("load the Home Page")
.get("/")
)
.pause(5)
.exec(
http("get the Add New Computer page")
.get("/computers/new")
)
.pause(5,10)
.exec(
http("Post the new computer")
.post("/computers")
.formParam("name", "Ionic Defibulizer")
.formParam("introduced", "2020-01-01")
.formParam("discontinued", "2020-06-30")
.formParam("company", "37")
)
이 두 가지 새로운 절차를 제외하고, 우리는 그것들 사이에 정지를 추가했다.pause(5)
은 5초, pause(5,10)
은 5~10초 사이의 무작위 시간을 정지합니다.일시 중지 시간은 사용자가 페이지와 어떻게 상호작용하는지 시뮬레이션하는 데 사용됩니다.실제 정지 시간은 실제 장면을 구축하는 데 매우 중요하다.좋아, 우리는 이미 장면을 구축했어.이제 사용자를 추가하는 방법을 정의해야 합니다.이 스크립트에 대해 10개의 동시 사용자를 30초 동안 실행합니다.
setUp(myScenario.inject(constantUsersPerSec(10) during (30 seconds)).protocols(httpConfig))
seconds
에서 다음 문제를 해결하기 위해 Scala에서 Durationant를 가져와야 합니다.import scala.concurrent.duration.DurationInt
Gatling은 사용자를 추가할 수 있는 많은 방법을 제공합니다.documentation에 대한 자세한 내용을 확인하십시오.스크립트 실행
우리는 스크립트를 실행하는 몇 가지 방법이 있다.가장 간단한 방법은 Maven을 사용하여 명령줄에서 실행하는 것입니다.
mvn gatling:test -Dgatling.simulationClass=scala.scripts.HelloGatling
또 다른 옵션은 src/test/resources/Engine.scala
을 실행하는 것입니다.이것은 우리가 bin
폴더에서 Gatling을 실행할 때 사용한 도구와 같습니다.
어떤 방법을 선택하든지 새로 만든 스크립트는 실행되어야 합니다. 결과는 다음과 같습니다.
총결산
이것은 네가 처음부터 시작한 첫 번째 각본이다.이것은 녹음된 스크립트와 크게 다르지 않지만, Maven을 사용하여 새로운 Gatling 프로젝트를 만드는 방법을 이해하고, 스크립트의 내부 작업에 대해 명확한 인식을 가지길 바랍니다.
Reference
이 문제에 관하여(Gatling 자동화 로드 테스트 사용 - 속편!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/leading-edje/automate-your-load-testing-with-gatling-the-sequel-4991
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mvn gatling:test -Dgatling.simulationClass=scala.scripts.HelloGatling
이것은 네가 처음부터 시작한 첫 번째 각본이다.이것은 녹음된 스크립트와 크게 다르지 않지만, Maven을 사용하여 새로운 Gatling 프로젝트를 만드는 방법을 이해하고, 스크립트의 내부 작업에 대해 명확한 인식을 가지길 바랍니다.
Reference
이 문제에 관하여(Gatling 자동화 로드 테스트 사용 - 속편!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/leading-edje/automate-your-load-testing-with-gatling-the-sequel-4991텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)