簡體   English   中英

如何在加特林中給StringBody()中的隨機字符串?

[英]How do give a random string in StringBody() in 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文件中的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM