gpt4 book ai didi

java - 如何使用 qaf Web 服务请求调用来管理具有多个请求的 cookie?

转载 作者:行者123 更新时间:2023-11-30 05:38:40 25 4
gpt4 key购买 nike

我使用 qaf 提供的 bdd 实现进行测试自动化,并使用 qaf-support-ws 进行 Web 服务测试。我发现它非常容易使用 TestNG 的强大功能来实现 Web 服务测试自动化所需的各种功能。它有助于轻松编排 UI 和 API。我们的 beckend API 需要身份验证,并使用 cookie 进行后续 API 调用。我可以通过实现ClientFilter来传递coockie。我通过扩展 RestClientFactory 创建了提供客户端。我的客户端添加了 Coockie 过滤器,可以很好地处理对一个域的请求调用,每当我对不同域发出请求时,我都需要重置客户端,如下所示:

new RestTestBase().resetClient();

因此我每次都必须调用 API 进行身份验证。如果请求针对同一域,我不需要重置客户端。还有其他更好的方式来管理cookie吗?这样我就可以在不重置客户端的情况下使用多个域。

最佳答案

另一种更简单的方法是使用 Apache HTTP 客户端,如下所示:

protected Client createClient() {
HttpClient httpClient = new HttpClient();
ApacheHttpClientConfig config = new DefaultApacheHttpClientConfig();
config.getProperties().put(ApacheHttpClientConfig.PROPERTY_HANDLE_COOKIES, true);
// ApacheHttpClient httpClient = ApacheHttpClient.create(config);
ApacheHttpClientHandler clientHandler = new ApacheHttpClientHandler(httpClient, config);
ClientHandler root = new ApacheHttpClient(clientHandler);

Client client = new Client(root, config);
return client;
}

通过此实现,您在请求另一个域时不需要重置客户端,反之亦然。完整的示例可以找到here

关于java - 如何使用 qaf Web 服务请求调用来管理具有多个请求的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140380/

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