从动态数据生成Gatling请求

时间:2015-09-22 16:15:32

标签: scala gatling

我需要迭代动态生成的应用程序数据,并且没有看到Gatling文档中的任何详细示例。我使用馈线作为可预测的变量,但我该如何从动态中获取请求?我尝试过使用支票,但我不确定这是否是正确的方法。那么我如何迭代捕获的数据并生成新的get()请求?

例如:

val userLinks = exec(
    http("Follow Links")
    .get("/userLinks/")
    .headers(...)
    .check(
        regex("""__doPostBack('ct100$PageContent$FollowMe','(.*)')""")
        .ofType[(String)].findAll.optional.saveAs("FollowMeOptions")
    )
)

上述方法是否正确?如果是,我如何使用结果(" FollowMeOptions")?我觉得这是一个应该 - 并且很可能 - 在文档中涵盖的基本场景,但是我没有幸运地找到一个具体的例子(或者在堆栈中)。

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是我对此的回答:问题陈述:我必须为配置的一组时间重复加密执行,并且我的步骤名称必须是动态的。

object UrlVerifier {

  val count = new java.util.concurrent.atomic.AtomicInteger(0)
  val baseUrl = Params.applicationBaseUrl

  val accessUrl = repeat(Params.noOfPagesToBeVisited,"index") {
    exec(session=> {
      val randomUrls: List[String] = UrlFeeder.getUrlsToBeTested()
      session.set("index", count.getAndIncrement).set("pageToTest", randomUrls(session("index").as[Int]))
    }
    ).
    exec(http("Accessing Page ${pageToTest}")
      .get(baseUrl+"${pageToTest}")
      .check(status.is(200))).pause(Params.timeToPauseInSeconds)
  }

所以基本上UrlFeeder给我一个String列表(要测试的url),在exec中,我们使用count(AtomicInteger),并使用它来填充一个名为' index'的变量。其值将从0开始,并在每次迭代中为getAndIncremented。这个'索引'变量是将在repeat()循环中使用的变量,因为我们指定了counterVariable的名称,用作' index'

同时检查,我正在定义http请求的动态名称,例如访问网页xyz'。 这有助于我以更好的方式理解报告,例如确切的网址失败。

希望它也有助于其他人。