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