【问题标题】:RestAssured Response is overridenRestAssured 响应被覆盖
【发布时间】:2017-06-06 16:47:40
【问题描述】:

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

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

BaseClass.java:

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

继承了上面的类,并在我的测试方法中使用了类中的“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 参数和Send 请求。 有没有办法可以清除以前的 GET 响应并使用 basicAuth 参数再次发送请求。

【问题讨论】:

    标签: java rest automation rest-assured


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2016-08-06
      相关资源
      最近更新 更多