使用单一HTTPClient和并行测试执行的API测试自动化

时间:2018-03-18 17:42:27

标签: java web-services automation automated-tests apache-httpclient-4.x

我正在尝试使用HTTPClient在我的项目中自动化API,并且我计划使用可以由各种请求共享的单例客户端。所以,这是我的单例类的代码:

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都保持相同,我有以下问题w.r.t此实现:

  1. 我将并行运行我的测试(假设每个API都有单独的类,并且所有类都需要并行运行)。我可以使用Singleton HTTP Client或Static HTTP client并行运行我的测试吗?
  2. 如果我无法并行运行测试,那么摆脱单例客户端或静态客​​户端是否合适?
  3. 请注意我是Java的新手,请原谅我是否遗失/混淆。

    提前致谢!

0 个答案:

没有答案