繁体   English   中英

Gatling - 将数据从馈线传递到执行中的方法

[英]Gatling - passing data from feeder to method in exec

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

  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
...

}

免责声明:加特林创始人在这里

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

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

然后,关于您共享的代码,这不是加特林表达式语言的工作方式。 您必须在 function 中解析您的参数。 请检查Session API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM