简体   繁体   English

创建一个scala函数来定义Gatling HTTP请求链

[英]Create a scala function to define Gatling HTTP request chains

I'm just a newbie in Scala and gatling. 我只是斯卡拉和加特林的新手。

When I define 当我定义

Object A{
  val asset_sort = exec(http("Sort by Displays")
   .get("/data/analytics/reports/")
   .queryParamMap(asset_details_map)
   .queryParam("""sort""", """video_starts""")
   .check(status.is(200)))
  .pause(1)

 val device_sort = and so on ... variables.
}

Now I want to create a Scala function which return me different variable by passing certain params. 现在我想创建一个Scala函数,它通过传递某些参数来返回不同的变量。

I tried something like this 我试过这样的事

val asset_sort = generateWebRequest("Sort by Displays", "video_starts", asset_details_map)

  def generateWebRequest(requestName:String, sort:String, queryParamMap:HashMap):ChainBuilder = {

    return exec(http(requestName)
     .get("/data/analytics/reports/")
     .queryParamMap(queryParamMap)
     .queryParam("""sort""", sort)
     .check(status.is(200)))
    .pause(1)
  }

But it throws error 但它会引发错误

i_ui\lib\AssetDetail.scala:47: class HashMap takes type parameters
12:50:36.708 [ERROR] i.g.a.ZincCompiler$ -   def generateWebRequest(requestName:String, sort:String, qu
eryParamMap:HashMap):ChainBuilder = {
12:50:36.710 [ERROR] i.g.a.ZincCompiler$ -

The "class HashMap takes type parameters" is very explicit. “类HashMap采用类型参数”非常明确。 HashMap is a generic type, that takes 2 type parameters, one for the key type, one for the value type. HashMap是一种泛型类型,它接受2个类型参数,一个用于键类型,一个用于值类型。 Try HashMap[String, String]. 尝试HashMap [String,String]。

No need to specify precisely HashMap, use the generic parent interface. 无需精确指定HashMap,使用通用父接口。 Also, no need (perhaps) to specify the type of generateWebRequest, let the compiler infer it. 此外,不需要(也许)指定generateWebRequest的类型,让编译器推断它。 And you usually don't have to use return in Scala. 而且你通常不必在Scala中使用return

val asset_sort = generateWebRequest("Sort by Displays", "video_starts", asset_details_map)

def generateWebRequest(requestName:String, sort:String, queryParamMap:Map[String,String]) = {
    exec(http(requestName)
            .get("/data/analytics/reports/")
            .queryParamMap(queryParamMap)
            .queryParam("""sort""", sort)
            .check(status.is(200)))
        .pause(1)
}

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

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