2017-06-06 81 views
1

我想要使用RestAPI編程來獲取多個URI。 所有GET請求需要基本授權RestAssured響應被覆蓋

我使用了一個BaseClass的,我定義RequestSpecification如下(爲避免授權代碼每次運行測試時)

BaseClass.java:

RequestSpecification basicAuth=RestAssured.given().accept("text/html").auth().preemptive().basic("username","password");  

繼承上面的Class並在我的Test方法中使用類中的「basicAuth」參數。

public class Tests extends BaseClass 
    { 
     @Test(priority=1) 
     public void test01() throws IOException 
     { 
      response=basicAuth.when().get("URL1"); 
      Assert.assertEquals(200,response.getStatusCode()); 
     } 

      @Test(priority=2) 
      public void test02() throws IOException 
      { 
      response=basicAuth.when().get("URL2"); 
       Assert.assertEquals(200,response.getStatusCode()); 
      }} 

這裏的問題是兩個測試返回相同的響應(test01的響應),雖然URI的不同。 單獨運行test02可跳過test01,獲得預期響應。

解決方法是定義兩個RequestSpecification參數和發送請求。 有沒有一種方法可以清除以前的GET Response並使用basicAuth參數再次發送請求。

回答

1

您需要將您的呼叫分爲兩個呼叫: 1.添加一個beforeMethod()函數調用,您應該調用BaseClass.java中的auth函數,這會返回一個對象(客戶端),稍後你可以在你的測試課中使用。 2.在每個測試類中,使用客戶端對象並調用特定的URL。由於每次調用before方法都會創建一個新的客戶端對象。 因此,理想情況下,您的第二個調用將使用auth客戶端進行調用,並將URL對象作爲參數傳遞。

+0

Thankyou :)它的工作 –

+0

@PravallikaEsarla很高興!做出投票答案。 –