当前位置: 首页 > 知识库问答 >
问题:

加特林从进料器中获取变量

姬安志
2023-03-14

我的加特林版本是2.2.0,例如:

# resource.csv file
===============
user
user1
user2

# object file
===============
object REntity {
  val feeder = csv("resources.csv").circular

  val entity =
  // ==================
  // log in
  // ==================
    feed(feeder)
      .exec(
        http("example")
          .post("/authentication?name=${user}")
          .body(session => s"${Utils.getCredential(user)}")
      ).exitHereIfFailed.pause(Config.ThinkTime)
}

Utils.get凭据(user: String):String只是一个接受用户名并返回凭据字符串的函数。

如您所见,用户名存储在参考资料中。csv文件。我可以通过简单地引用它。post(“/authentication?name=${user}”)。但是我怎么能把它称为变量,比如${Utils.getCredential(user))},这会引发错误。

有什么想法吗?谢谢你抽出时间!


共有1个答案

司徒锐进
2023-03-14

我查了盖特林的文件,在这里找到了答案。

它有两个部分(1)。设置属性和2)获取属性。

基本上来说,获取属性的方式应该是:

// say resources.csv looks like this:
// =====================
// user,entityID
// Jim,1001
// Mike,1002

val feeder = csv("resources.csv").circular
val name = session("user").as[String] // => "Jim"

答案应该是:

object REntity {
  val feeder = csv("resources.csv").circular

  val entity =
  // ==================
  // log in
  // ==================
    feed(feeder)
      .exec(
        http("example")
          .post("/authentication?name=${user}")
          .body(session => Utils.getCredential(session("user").as[String]))
      ).exitHereIfFailed.pause(Config.ThinkTime)
}
 类似资料:
  • 我试着用各种“Rest”和“atOnceUser”进行注射。我在留档上没有找到一个好的解决方案。 我的方法是使用本地计数器创建一个名为“getNextNumber()”的函数,以增加“atOnceUser”的数量,但该函数一开始只调用一次。 有什么想法吗? 我的代码:

  • 我有几个. csv文件,我想在Gatling中用于相同的数据。这些文件中的每一个都有一定数量的ID,我希望可以公平地访问它们。我不想把它们都放在同一个文件中,因为. csv文件是由SQL查询生成的,虽然我在一个文件中可能有很多ID,但在另一个文件中我只有几个。对我来说重要的是,我从每个文件中都有一个随机样本和一种指定分布的方法。 我找到了一个如何执行此操作的示例,但在我的案例中应用它时遇到了困难。

  • 我在资源文件夹中有几个csv文件。它们的内容相同,但都相当大(~14gb)。我想避免将它们合并成一个大文件。 有没有办法向Gatling Feeder提供多个文件(或文件夹路径)?

  • 我正在使用Gatling 3.3.1使用Gatling Kafka库在Kafka中注入数据。我试着用一个小的定制进料器来测试它。 但是它不起作用feed()需要一个FeederBuilder feeder是迭代器[Map[String,String]] 我不知道怎样才能解决这个问题。

  • 我试图将提供Id的馈线的值输入到。txt文件。他们有没有办法直接从feeder中提取值,而不必从每个会话中提取Id?

  • 我可以用这种喂食器 但是当我得到这样的文件时,我如何使用feeder来替换超文本传输协议路径、标题和帖子正文?