具有testng并行化的静态Selenium客户端

时间:2012-09-13 16:38:06

标签: java selenium testng selenium-grid

我被告知要使用一个通过以下约定使用selenium的框架:

public static SeleniumClient instance() {



if (_instance == null) {

  _instance = new SeleniumClient();

  LogHelper.instance().setInfo("SeleniumClient::instance(): Singleton created.");

}

return _instance;

}

所有测试都以类似的方式编写。例如,如果我正在创建一个新测试,我会编写一个帮助类,这将是它的使用方式:

public static PropertyManagerHelper instance() {

if (_instance == null) {

  _instance = new PropertyManagerHelper();

  LogHelper.instance().setInfo("PropertyManagerHelper::instance(): Singleton created.");

}

return _instance;

}

我有一个selenium网格,我打算也发送这些测试。在我走得太远之前,我有这些问题:

Selenium如何将测试发送到网格?它是发送整个班级/测试还是将每个动作作为单独的请求发送?

上一个问题可能会回答这个问题,但这种静态用法会阻止testng运行多个并行测试吗?

2 个答案:

答案 0 :(得分:0)

为什么是Singleton模式?

它的当前状态不是线程安全的:

http://csharpindepth.com/Articles/General/Singleton.aspx

我不建议使用Singleton模式。

答案 1 :(得分:0)

它发送每个命令。 Selenium不了解它是测试用例还是类。 Hub将获取命令并在远程控制中分发。