В настоящее время я создаю моделирование Gatling для тестирования API REST. Я действительно не понимаю Скала.Передача аргументов между сценариями Gatling и имитацией
Я создал сценарий с несколькими exec и pause;
object MyScenario {
val ccData = ssv("cardcode_fr.csv").random
val nameData = ssv("name.csv").random
val mobileData = ssv("mobile.csv").random
val emailData = ssv("email.csv").random
val itemData = ssv("item_fr.csv").random
val scn = scenario("My use case")
.feed(ccData)
.feed(nameData)
.feed(mobileData)
.feed(emailData)
.feed(itemData)
.exec(
http("GetCustomer")
.get("/rest/customers/${CardCode}")
.headers(Headers.headers)
.check(
status.is(200)
)
)
.pause(3, 5)
.exec(
http("GetOffers")
.get("/rest/offers")
.queryParam("customercode", "${CardCode}")
.headers(Headers.headers)
.check(
status.is(200)
)
)
}
И Я простое моделирование:
class MySimulation extends Simulation {
setUp(MyScenario.scn
.inject(
constantUsersPerSec (1) during (1)))
.protocols(EsbHttpProtocol.httpProtocol)
.assertions(
global.successfulRequests.percent.is(100))
}
приложение Я пытаюсь моделировать является multilocation мобильных приложений, поэтому я подготовил набор выборок данных для каждой Locale (США, FR, IT ...)
Мой REST API обрабатывает все локали, поэтому я хочу, чтобы сделать имитацию одновременно выполнять несколько экземпляров из MyScenario, каждый с другим образцом локали, для имитации глобальной нагрузки.
Можно ли выполнить мое моделирование без необходимости создавать/дублировать сценарий и изменить Вали ccData = ПКА («cardcode_fr.csv»). Случайным образом для каждого из них?
Кроме того, каждая локаль имеет собственную нагрузку, как я могу создать симуляцию, которая принимает один сценарий и выполняет его несколько раз одновременно с другим загрузчиком и фидерами?
Заранее спасибо.
Я не думаю, что это отвечает на вопрос. Он обеспечивает решение с использованием случайных, но не помогает передавать параметры для моделирования в сценарий. – joniba
Ну, для этого вам просто нужно вручную добавить параметры, возможно, с '.queryParam()' или (если вы поместите несколько параметров в последовательность) 'queryParamSeq()' – childofsoong