2016-01-21 111 views
2

實施例試驗:放心 - 重試請求如果失敗

@Test 
public void shouldGetRoutesList() { 
    Response response = 
      given() 
        .headers("RequestId", 10) 
        .headers("Authorization", accessToken) 
        .contentType(ContentType.JSON). 
      expect() 
        .statusCode(HttpURLConnection.HTTP_OK). 
      when() 
        .get("address"); 
    String responseBody = response.getBody().asString(); 
    System.out.println(responseBody); 
    logger.info("Log message"); 
} 

的事情是,有時從服務響應等於500錯誤。這是因爲應用程序錯誤,它的應用程序故障,所以我想補充溫度。解決方法重試.get如果服務返回500.我正在考慮ifdo-while但我知道這不是很聰明的方式。任何人都可以建議一些解決方案!

換句話說 - 我要重試整個測試(或只是不用彷徨)如果的StatusCode = HTTP_OK

+0

如果你想重試某些事情,循環是唯一的方法。簡單的「不聰明」解決方案有什麼問題? – Guy

+0

由於statusCode = 500,我可以刪除expect()以使其不會失敗,並且在IF語句中檢查此代碼是/否不可見。但另一個問題是,responseBody不返回狀態代碼作爲一個字符串,所以我不能只做一些像responseBody.contains(「500」)... – Michal

回答