RestAssured Response被覆盖

时间:2017-06-06 08:01:12

标签: java rest automation rest-assured

我正在尝试使用RestAPI编程获取多个URI。 所有GET请求都需要基本授权

我使用了BaseClass,我在其中定义了RequestSpecification,如下所示(每次运行Test时都要避免授权代码)

BaseClass.java:

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

在Class上面继承并使用" basicAuth"使用我的Test方法在类中的参数。

  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());
          }}

这里的问题是两个测试都返回相同的Response(test01' s),尽管URI不同。 单独运行test02跳过test01会给出预期响应。

解决方法是定义两个RequestSpecification参数和发送请求。 有没有办法我可以清除以前的GET响应并使用basicAuth参数再次发送请求。

1 个答案:

答案 0 :(得分:1)

你需要将你的电话分成2个电话: 1.添加一个beforeMethod()函数调用,在该调用中你应该调用BaseClass.java中的auth函数,这应该返回一个对象(客户端),稍后你可以在你的测试类中使用它。 2.在每个测试类中,使用客户端对象并调用特定URL。由于每次调用before方法时都会创建一个新的客户端对象。 因此,理想情况下,您的第二个调用将使用auth客户端进行调用并将URL对象作为参数传递。