如何在 Gatling 的 StringBody() 中给出一个随机字符串?
How do give a random string in StringBody() in gatling?
我是 Gatling 工具的新手。
我想在StringBody()
方法中给出一个随机字符串。
例如,对于 100 个请求,将传递 100 个不同的字符串。
这是我的示例代码:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class LoadTest extends Simulation {
private val csvFeeder = csv("data.csv").random
val httpConf = http
.baseURL("http://localhost:5000/sample")
.acceptHeader("text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8")
val scn = scenario("load test")
.feed(csvFeeder)
.exec(http("request")
.post("http://localhost:5000/sample")
.body(StringBody(s"""{"inputData": ${csvFeeder} }""")).asJSON
setUp(
scn.inject(
constantUsersPerSec(50)
during (10 seconds) randomized).protocols(httpConf))
}
但是CSV文件中的所有字符串都被传递了。
我的代码有什么问题?
我该如何解决?
我会这样做:
import scala.util.Random
var randomString = Iterator.continually(Map("randstring" -> ( Random.alphanumeric.take(35).mkString )))// length of the random string is 35 chars here
val scn = scenario("load test")
.feed(randomString)
.exec(http("request")
.post("http://localhost:5000/sample")
.body(StringBody("""{"inputData": ${randstring} }""")).asJSON
setUp(
scn.inject(
constantUsersPerSec(50)
during (10 seconds) randomized).protocols(httpConf))
}
同样在您的代码中更改:.body(StringBody(s"""{"inputData": ${csvFeeder} }""")).asJSON
到 .body(StringBody("""{"inputData": ${csv_header_coloumn_name} }""")).asJSON
//csv_header_coloumn_name > 是您要替换的 csv 文件中的字段。
我是 Gatling 工具的新手。
我想在StringBody()
方法中给出一个随机字符串。
例如,对于 100 个请求,将传递 100 个不同的字符串。
这是我的示例代码:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class LoadTest extends Simulation {
private val csvFeeder = csv("data.csv").random
val httpConf = http
.baseURL("http://localhost:5000/sample")
.acceptHeader("text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8")
val scn = scenario("load test")
.feed(csvFeeder)
.exec(http("request")
.post("http://localhost:5000/sample")
.body(StringBody(s"""{"inputData": ${csvFeeder} }""")).asJSON
setUp(
scn.inject(
constantUsersPerSec(50)
during (10 seconds) randomized).protocols(httpConf))
}
但是CSV文件中的所有字符串都被传递了。
我的代码有什么问题? 我该如何解决?
我会这样做:
import scala.util.Random
var randomString = Iterator.continually(Map("randstring" -> ( Random.alphanumeric.take(35).mkString )))// length of the random string is 35 chars here
val scn = scenario("load test")
.feed(randomString)
.exec(http("request")
.post("http://localhost:5000/sample")
.body(StringBody("""{"inputData": ${randstring} }""")).asJSON
setUp(
scn.inject(
constantUsersPerSec(50)
during (10 seconds) randomized).protocols(httpConf))
}
同样在您的代码中更改:.body(StringBody(s"""{"inputData": ${csvFeeder} }""")).asJSON
到 .body(StringBody("""{"inputData": ${csv_header_coloumn_name} }""")).asJSON
//csv_header_coloumn_name > 是您要替换的 csv 文件中的字段。