gpt4 book ai didi

java - RestAssured 响应被覆盖

转载 作者:行者123 更新时间:2023-11-30 06:40:58 24 4
gpt4 key购买 nike

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

我使用了一个基类,在其中定义了 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 参数并发送请求。有没有办法可以清除以前的 GET 响应并使用 basicAuth 参数再次发送请求。

最佳答案

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

关于java - RestAssured 响应被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com