gpt4 book ai didi

scala - 在 Gatling 场景和模拟之间传递参数

转载 作者:行者123 更新时间:2023-12-01 23:11:53 24 4
gpt4 key购买 nike

我目前正在创建一些 Gatling 模拟来测试 REST API。我不太了解 Scala。

我创建了一个包含多个 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))

}

我要模拟的应用程序是一个多位置移动应用程序,因此我为每个区域设置(美国、法国、意大利...)准备了一组示例数据

我的 REST API 处理所有区域设置,因此我想让模拟同时执行多个 MyScenario 实例,每个实例都有不同的区域设置示例,以模拟全局负载。

是否可以执行我的模拟而无需创建/复制场景并为每个场景更改 val ccData = ssv("cardcode_fr.csv").random

此外,每个区域设置都有自己的负载,我如何创建一个模拟,采用单个场景并使用不同的负载和馈线同时执行多次?

提前致谢。

最佳答案

根据您所说的,我认为这可能是一个不错的方法:

首先对您的数据进行分组,以便您可以根据当前区域设置查找要发送的每个项目。为此,我建议使用与区域设置字符串(例如“FR”)匹配的 Map 到与您要填写的字段的区域设置匹配的项目。然后,在场景的每次迭代开始时,您只需从列表中选择要用于当前迭代的语言环境。它看起来像这样:

val locales = List("US", "FR", "IT")
val names = Map( "US" -> "John", "FR" -> "Pierre", "IT" -> "Guillame")

object MyScenario {
//These two lines pick a random locale from your list
val random_index = rand.nextInt(locales.length);
val currentLocale = locales(random_index);
//This line gets the name
val name = names(currentLocale)
//Do the rest of your logic here
}

这是一个非常简单的示例 - 您必须弄清楚您实际想要如何从文件中检索数据并将其放入 Map 结构中,因为我假设您不想为每个项目硬编码字段到您的代码中。

关于scala - 在 Gatling 场景和模拟之间传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29009407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com