3

我只是 Scala 和 gatling 的新手。

当我定义

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

现在我想创建一个 Scala 函数,它通过传递某些参数返回不同的变量。

我尝试过这样的事情

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)
  }

但它会引发错误

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$ -
4

2 回答 2

2

无需精确指定HashMap,使用通用父接口。此外,不需要(也许)指定 generateWebRequest 的类型,让编译器推断它。而且你通常不必return在 Scala 中使用。

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)
}
于 2014-07-17T08:32:53.827 回答
1

“类 HashMap 采用类型参数”非常明确。HashMap 是一种泛型类型,它接受 2 个类型参数,一个用于键类型,一个用于值类型。试试 HashMap[String, String]。

于 2014-07-17T07:49:09.677 回答