将 Gatling 设置为基于 percentage/ratios 发送请求?
Setting Gatling to send requests based on percentage/ratios?
我想设置 Gatling,这样在一个设置中,我可以发送 3000 个请求,其中 95% 将使用一个测试文件,5% 将使用另一个测试文件。这些文件被检索为 json 个文件(在下面的代码中称为 'userFeeder'。Gatling 可以支持上述场景吗?
目前代码如下,适用于每秒请求一次的方法,但需要修改。
class AddUserSimulation extends Simulation {
private val conf = ConfigFactory.load() //loads a setup file of parameters
private val TOKEN_VALUE = "tokenvalue"
private val userFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json")
val httpConf = http
.baseURL(conf.getString("api.gateway.url")) // Here is the root for all relative URLs
.header("Referer", conf.getString("referer"))
.header("Cache-Control", "no-cache")
.contentTypeHeader("application/json")
val Login = new ADFSAuthentication Login
val scnAPI = scenario("test add User") // A scenario is a chain of requests and pauses
.feed(userFeeder.circular)
.exec(Login.process)
.repeat(conf.getInt("repeat.count")) {
exec(http("test add User")
.post("/" + conf.getString("environment") + "/users/")
.body(StringBody("${payload}")).asJSON
.header("Authorization", "Bearer ${"+TOKEN_VALUE+"}")
.check(status.is(200)))
.pause(conf.getInt("execution.pause"))
}
setUp(scnAPI.inject(constantUsersPerSec(11) during(30 minutes)).protocols(httpConf))
}
非常感谢任何帮助。
好的!首先设置你的两个馈线。然后设置两个场景,一个使用第一个馈线,一个使用第二个馈线。最后 setUp
都加上你希望的用户数(对应你的分配)。
代码可能如下所示:
private val firstFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json")
private val secondFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser2.json")
val scnAPI = scenario("test add User")
.feed(firstFeeder)
//...
val scnAPI2 = scenario("second test add User")
.feed(secondFeeder)
//...
setUp(scnAPI.inject(constantUsersPerSec(95) during(30 minutes)).protocols(httpConf),
scnAPI2.inject(constantUsersPerSec(5) during(30 minutes)).protocols(httpConf))
注意:这不会创建恰好 3000 个请求,但我想您明白了。
我想设置 Gatling,这样在一个设置中,我可以发送 3000 个请求,其中 95% 将使用一个测试文件,5% 将使用另一个测试文件。这些文件被检索为 json 个文件(在下面的代码中称为 'userFeeder'。Gatling 可以支持上述场景吗?
目前代码如下,适用于每秒请求一次的方法,但需要修改。
class AddUserSimulation extends Simulation {
private val conf = ConfigFactory.load() //loads a setup file of parameters
private val TOKEN_VALUE = "tokenvalue"
private val userFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json")
val httpConf = http
.baseURL(conf.getString("api.gateway.url")) // Here is the root for all relative URLs
.header("Referer", conf.getString("referer"))
.header("Cache-Control", "no-cache")
.contentTypeHeader("application/json")
val Login = new ADFSAuthentication Login
val scnAPI = scenario("test add User") // A scenario is a chain of requests and pauses
.feed(userFeeder.circular)
.exec(Login.process)
.repeat(conf.getInt("repeat.count")) {
exec(http("test add User")
.post("/" + conf.getString("environment") + "/users/")
.body(StringBody("${payload}")).asJSON
.header("Authorization", "Bearer ${"+TOKEN_VALUE+"}")
.check(status.is(200)))
.pause(conf.getInt("execution.pause"))
}
setUp(scnAPI.inject(constantUsersPerSec(11) during(30 minutes)).protocols(httpConf))
}
非常感谢任何帮助。
好的!首先设置你的两个馈线。然后设置两个场景,一个使用第一个馈线,一个使用第二个馈线。最后 setUp
都加上你希望的用户数(对应你的分配)。
代码可能如下所示:
private val firstFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json")
private val secondFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser2.json")
val scnAPI = scenario("test add User")
.feed(firstFeeder)
//...
val scnAPI2 = scenario("second test add User")
.feed(secondFeeder)
//...
setUp(scnAPI.inject(constantUsersPerSec(95) during(30 minutes)).protocols(httpConf),
scnAPI2.inject(constantUsersPerSec(5) during(30 minutes)).protocols(httpConf))
注意:这不会创建恰好 3000 个请求,但我想您明白了。