2014-07-17 40 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 –

相關問題