我正在爲我的iOS swift項目實施單元測試。我想爲我的項目中的POST API實現性能測試,但我不知道如何實現該POST API。我測試了GET API,並且給了我期望的結果。POST API的XCTest性能測試
這裏就是我想實現
func testPerfromancePOSTAPI() {
let session = URLSession.shared
var request = URLRequest(url: MY_URL)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
do {
request.httpBody = try JSONSerialization.data(withJSONObject: MY_SERVICE_PARA, options: .prettyPrinted)
} catch let error {
print(error.localizedDescription)
}
self.measure {
let task = session.dataTask(with: request as URLRequest, completionHandler: { data, response, error in
guard error == nil else {
return
}
guard let data = data else {
return
}
do {
if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {
print("response JSON = \(json)")
}
} catch let error {
XCTFail("Expectation Failed with error: %@", file: error as! StaticString);
}
})
task.resume()
}
}
當我運行這個測試順利通過,但不打印響應JSON既不給出了一個錯誤,並表示「時間0.0000秒(161碼%STDEV)「,而在郵差中運行相同的API則需要幾秒鐘的時間。 請檢查並幫我解決這個問題。
是否檢查完成塊是否被執行? @vivek – jegadeesh
@jegadeesh我把調試點,但它永遠不會在完成塊。 –
那就是問題所在。你確定你的請求正在服務器上嗎? @Vivek – jegadeesh