2014-07-17 39 views
3

我只是一个Scala和gatling的新手。创建一个scala函数来定义Gatling HTTP请求链

当我定义

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的功能,通过传递某些PARAMS返回我不同的变量。

我想是这样的

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

回答

1

无需精确指定HashMap,使用通用父接口。另外,不需要(可能)指定generateWebRequest的类型,让编译器推断它。而且你通常不需要在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) 
} 
+0

: - 我已经导入io.gatling.core.structure,但仍然没有找到:类型ChainBuilder –

+0

也许现在只是删除定义,让Scala推断它?看我更新的例子。 – Ashalynd

+0

还是我的方法generateWebRequest有return语句;需要结果类型 return exec(http(requestName) –

1

“类HashMap中需要输入参数” 是非常明确的。 HashMap是一个泛型类型,它有两个类型参数,一个用于键类型,另一个用于值类型。试试HashMap [String,String]。

+0

我已导入进口io.gatling.core.structure和改变的功能的HashMap [字符串,字符串] PARAM但仍引发i_ui \ lib中\ AssetDetail.scala:44:未找到:类型的ChainBuilder 13: 37:11.476 [错误] igaZincCompiler $ - def generateWebRequest(requestName:String,sort:String,qu eryParamMap:HashMap [String,String]):ChainBuilder = { 13:37:11.478 [错误] igaZincCompiler $ - ^ 13:37:11.486 [错误] igaZincCompiler $ - C:\ Users \ Vertis \ Desktop \ gatling \ user-files \ simulations \ delph i_ui \ lib \ AssetDetail.scala:44:not found:type HashMap –

+0

其中加特林版本你使用? –

+0

我已经在https://github.com/excilys/gatling/wiki/Continuous-Integration –

相关问题