Gatling은 부하 테스트를 수행하는 훌륭한 도구이지만 DSL이 어떻게 든 당황하게합니다. 문제는 이미 사용자 지정 요청 및 모델 클래스가 있고 기존 클래스를 DSL로 이식하는 일종의 "브리지"클래스를 만들고 싶습니다. 여기 Gatling 2 DSL을 계측하는 방법
은 예입니다 : 암시 적 변환이 바로이 분명히 작동하지 않는http(...).get(url)...
에 request
변환
exec {
val request = new GetIdRequest()
request.setCountry("US")
request // There is an implicit conversion
.check(status.is(200), bodyString.saveAs("ids"))
}.exec {
session =>
val ids = new ObjectMapper().readValue(session("ids").as[String], classOf[IdList])
val request = new GetObjectRequest()
val request.setId(id(0))
request // There is an implicit conversion
.check(status.is(200), bodyString.saveAs("object"))
session
}
,
- 세션이 불변이므로 " 개체 "값이 세션에 저장되지 않음
request
s ecexec
이 실행되지 않았습니다. 에 직접 전달되지 않았습니다.
그럼 원하는 효과를 얻으려면 어떻게해야합니까? 채택 할 수있는 예가 있습니까? 아니면 내 자신의 ActionBuilder
을 구현해야합니까 (다른 프로토콜을 작성하는 것과 같으므로이 작업을 수행하고 싶지 않습니다). 감사합니다
업데이트 1
이 내가 생각 해낸 솔루션입니다.
는 난 그냥 당신이 개틀링 DSL 구성 요소가 해결 불변 빌더이라는 것을 이해하지 않았다 무엇HttpRequest
답장을 보내 주셔서 감사합니다. 나는 'Session => MyRequest' 타입의 매개 변수를 번역기 메소드에 전달함으로써 그 격차를 해소 할 수있는 방법을 발견했습니다. 번역기 메소드는 이것을 표현식으로 변환합니다. 이것은 꽤 잘 작동합니다. – stackoverflower