【问题标题】:Gatling - passing data from feeder to method in execGatling - 将数据从馈线传递到执行中的方法
【发布时间】:2021-04-01 07:43:37
【问题描述】:

我是 Gatling 的新手,我正在尝试重用我在 RestAssured/Java 中编写的用于功能测试的测试脚本来处理 Gatling。所以我调用登录方法的方法是在wrapperForJavaMethods 方法(第 4 行)中调用它们,然后以“加特林方式”(第 6 行)调用最后一个方法。如果我只是将字符串作为参数放在第 4 行,它工作得很好,但是当我尝试使用 feeder 的变量 ${login} 时,会打印出来,以便在第 7 行进行比较(调用 feeder 的变量没有逻辑意义,我只是这样做了出于调试目的)打印来自 csv 的数据。无论如何,我可以将数据从 csv feeder 传递到方法的参数,还是只能传递。在会话中调用?

  val csvCredentails = csv("data/data.csv")//1
  val scenario = scenario("my custom scenario")//1
    .feed(csvCredentails)//3
    .exec(wrapperForJavaMethods("${login}","${pass}"))//4
    .exec(http("login")//5
      .post("/login")//6
      .check(status is "${login}")//7

  def wrapperForJavaMethods(login: String, pass: String): Unit = {
    print("login11 " + username + " pass " + password)
    objectOfJavaClass.inputCredentials(username, password)
    objecyOfJavaClass.anotherJavaMethod
    objecyOfJavaClass.anotherJavaMethod2
    objecyOfJavaClass.anotherJavaMethod3
...

}

【问题讨论】:

    标签: java scala csv gatling


    【解决方案1】:

    免责声明:Gatling 创始人在这里

    首先,我对您要构建的内容持怀疑态度。

    • RestAssured 和其他功能测试工具未针对重负载实施。通常,它们不是建立在快速的非阻塞 HTTP 客户端之上。这不仅仅是他们的目标用例。 从 Gatling 的编排器触发 RestAssured 不会使其能够像真正的 Gatling HTTP 模块那样生成大负载。 此外,当插入像 Gatling 的异步引擎时,这样的阻塞 API 并不能很好地发挥作用。
    • 您确定您的连接使用将与您的目标系统上发生的情况相匹配吗? RestAssured 要么使用共享连接池,要么根本不使用连接池。我怀疑您将无法为每个虚拟用户实现一个连接池。同样,功能测试工具并不是为此而设计的。

    那么,关于您共享的代码,Gatling Expression Language 不是这样工作的。您必须在函数中解析参数。请查看Session API

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      相关资源
      最近更新 更多