我正在使用QAF提供的BDD实现来进行测试自动化,并使用QAF-Sup-Sup-Sup-WS进行Web服务测试。我发现具有Testng功率的Web服务测试自动化所需的各种功能非常容易使用。它有助于简单的UI和API编排。我们的Beckend API需要验证,并使用Cookie进行后续API调用。我可以通过实施ClientFilter
通过Coockie。我通过扩展RestClientFactory
创建了提供客户端。我的客户端带有添加的coockie过滤器可以通过一个域的请求电话良好,每当我在不同域上请求时,我都需要以下面的方式重置客户端:
new RestTestBase().resetClient();
因此,我必须调用API来验证每次。如果要求相同的域,我不需要重置客户端。还有其他更好的方法来管理饼干吗?这样我就可以与多个域一起工作而无需重置客户端。
另一种更简单的方法是使用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;
}
使用此实现,您在执行另一个域和明智的反之亦然时不需要重置客户端。完整的示例可以在此处找到。