2015-04-14 28 views
0

我是Gatling的新手,正在撰寫我的第一個場景。我無法讓RawFileBody工作。我指導所有流量通過提琴手,以便我可以看到發生了什麼,文件內容沒有被輸出到請求主體。使用StringBody可以正常工作,但我更喜歡不將它用於非常大的JSON有效內容。加特林:RawFileBody不輸出文字

我已經檢查過該文件在「... \ gatling \ gatling-charts-highcharts-bundle-2.1.4 \ user-files \ bodies」目錄中,我試過使用絕對路徑,我試過添加asJSON。我已經設置了日誌級別來跟蹤,並沒有看到任何錯誤或警告,但請求主體仍然是空的。下面是腳本的相關部分(忽略任何小的失誤,因爲我已經不得不刪除大量的專有代碼):

import io.gatling.core.scenario.Simulation 
import io.gatling.core.Predef._ 
import io.gatling.http.Predef._ 

import java.util.UUID 

class Scenario1 extends Simulation { 

    val uri1 = "http://somehost" 

    val httpProtocol = http 
    .baseURL("http://somehost") 
    .proxy(Proxy("localhost", 8888).httpsPort(8888)) 
    .inferHtmlResources() 
    .acceptHeader("application/json") 
    .contentTypeHeader("application/json") 

    val header = Map("Some" -> "proprietary-header") 

    object Foo { 
    val bar = exec(http("bar") 
     .post(uri1 + "/app/myservice") 
     .headers(header) 
     .body(RawFileBody("my_request.txt"))) 
    } 

    val scn = scenario("scenario1").exec(Foo.bar) 

    setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol) 
} 

任何想法?

+0

我正在使用Gatling 2.0.3,並且如果我使用了非絕對路徑,無法獲得'RawFileBody'來查找我的文件 - 但是它至少會在模擬報告結束時告訴我這個事實,並在運行過程中以'ERROR'記錄。如果我使用了絕對路徑,例如我能夠成功發送文件內容作爲正文。 '「/home/millhouse/blah/blah/user-files/foo/bar/my_request.txt」' – millhouse

+0

這似乎是一個問題,指導通過提琴手加特林。如果代理配置被刪除,它可以正常工作。在gatling用戶組中有另一個線程運行它:https://groups.google.com/forum/#!topic/gatling/TMdxbZIE6yM – joniba

+0

嘗試使用'ELFileBody'而不是'RawFileBody'。在我的情況下解決了同樣的問題。 –

回答

0

您在http part中設置了baseURL,然後再將其添加到.post部分中。 Post默認使用baseURL並添加您指定的任何內容。所以你似乎打電話給http://somehosthttp://somehost/app/myservice。除此之外,你應該沒問題,但要添加.asJSON,並確保使用絕對路徑。祝你好運。