Gatling 是一款高性能的壓力測試工具,它能夠模擬多用戶并發(fā)訪問,用于測試 Web 應(yīng)用程序的各種性能指標(biāo)。在進(jìn)行測試過程中,我們常常需要打印請求輸出與響應(yīng)結(jié)果,以便了解請求是否正常、響應(yīng)是否符合預(yù)期。在 Gatling 中,我們可以使用以下代碼打印 Json 請求輸出:
val scn = scenario("Print Json Request") .exec(http("Post Json Request") .post("http://example.com/api") .header("Content-Type", "application/json") .body(StringBody("""{ "name": "Gatling", "language": "Scala" }""")) .asJson .check(status.is(200)) .check(jsonPath("$.result").is(true)) .check(bodyString.saveAs("responseBody"))) .exec(session => { println(session("responseBody").as[String]) session })
在其中的 Http 請求中,我們指定了請求的 Url、請求頭、請求體格式、請求體內(nèi)容。通過 asJson 方法使請求體內(nèi)容為 json 格式。同時(shí),我們使用了 Gatling 自帶的 check 方法驗(yàn)證請求響應(yīng)結(jié)果是否符合預(yù)期,將響應(yīng)體內(nèi)容保存到 session 中,最后使用 exec 方法打印出響應(yīng)結(jié)果。
如果想要打印響應(yīng)結(jié)果的詳細(xì)信息,可以使用以下代碼:
.exec(session => { println(session("responseBody").as[String]) println(session("request").as[Request].getBody) println(session("request").as[Request].getHeaders) session })
其中,使用了 as[Request] 方法獲取請求信息,通過 getBody 和 getHeaders 方法獲取請求體和請求頭信息。
通過以上代碼,我們可以方便地打印 Gatling 的 Http 請求輸出及響應(yīng)結(jié)果信息,以便進(jìn)行壓力測試過程的監(jiān)控與調(diào)試。