Java 使用单例HTTPClient和并行测试执行的API测试自动化
我正在尝试使用HTTPClient自动化项目中的API,并计划使用一个可以由各种请求共享的单例客户端。下面是我的singleton类的代码:Java 使用单例HTTPClient和并行测试执行的API测试自动化,java,web-services,automation,automated-tests,apache-httpclient-4.x,Java,Web Services,Automation,Automated Tests,Apache Httpclient 4.x,我正在尝试使用HTTPClient自动化项目中的API,并计划使用一个可以由各种请求共享的单例客户端。下面是我的singleton类的代码: public class Login { private static Login Login = null; private static HttpClient client = null; public static Login singletonClient() throws IOException { if
public class Login {
private static Login Login = null;
private static HttpClient client = null;
public static Login singletonClient() throws IOException {
if (Login == null) {
Login = new Login();
client = new HttpClient();
String username = "username";
String password = "password";
String server = "http://www.myserver.com";
Integer port = "8080";
Credentials defaultcreds = new UsernamePasswordCredentials(username, password);
client.getState().setCredentials(new AuthScope(server, port), defaultcreds);
client.getParams().setAuthenticationPreemptive(true);
}
return Login;
}
public HttpClient getClient() {
return client;
}
}
在我的测试中使用的方式是:
HttpClient client = Login.singletonClient().getClient();
考虑到我必须在我的项目中自动化10个不同的API,并且所有API的用户名、密码都保持不变,我对这个实现有以下问题:
提前谢谢 您打算让您的HttpClient成为一个单例客户端吗?为什么不创建一个构建器,为每个API创建新的客户端实例呢?嗨,当我在线参考一些文档时,我读到“不要为每个请求重新创建HTTPClient。尽可能重用HTTPClient”。所以,我想让它成为单身汉。但是没有提到这是否适用于并行/并发请求。根据我的理解,我可以为每个类拥有一个单独的HTTPClient。但是,即使使用Singleton类也能做到这一点吗?