Selenium webdriver Selenium Grid DriverSafe测试分布

Selenium webdriver Selenium Grid DriverSafe测试分布,selenium-webdriver,automated-tests,testng,selenium-grid,parallel-testing,Selenium Webdriver,Automated Tests,Testng,Selenium Grid,Parallel Testing,我已经按照中所述设置了网格。此外,我还设置了测试类,如中所示 因为我希望每个driverInstance使用自己的someController和someData,所以我将BaseTest更改如下: public abstract class BaseTest { String testFolder; String testName;

我已经按照中所述设置了网格。此外,我还设置了测试类,如中所示

因为我希望每个driverInstance使用自己的someController和someData,所以我将BaseTest更改如下:

public abstract class BaseTest {    
            String                      testFolder;
            String                      testName;
            protected String            envName;        
            protected Configuration     config;
            protected String            host;
            protected RemoteWebDriver   driver;
            protected String            proxy;
            protected SomeData      someData;
            protected SomeController someController;

            public BaseTest() {
              }

            public BaseTest( String testFolder, String testName) 
            {   
                this.testFolder         = testFolder;
                this.testName           = testName;
                this.envName            = System.getProperty("config");
                this.proxy              = System.getProperty("proxy");
                config = this.envName;
            }

            @BeforeMethod 
            public void startTest(Method testMethod) {
                try {
                this.someData       = SomeDataSetup.getSafeSomeData(new SomeData());
                this.driver             = WebDriverSetup.getDriver();
                this.someController = SomeController.getSafeSomeController(new someController(this.driver, this.someData));
                driver.navigate().to("https://" + this.host);
                } catch (MalformedURLException e) {
                    System.out.println("MalformedURLException");
                }
            }
            @AfterMethod
            public void closeWindow() {
                driver.close();
                driver.quit();
            }
        }
为了获得每个实例,我创建了以下类

    public class SomeDataSetup {

        public static SomeData getSafeSomeData(SomeData someDataSet ) {

            ThreadLocal<SomeData> someData = null;
            someData = new ThreadLocal<SomeData>();
            someData.set(someDataSet);
            return someData.get();
        }
    }

获取每个someData、someController或驱动程序的threadsafe实例是一种好方法,还是可以在BaseTest本身中执行一些操作来返回其中每个的threadlocal实例?

那么您有什么问题吗?抱歉,刚才添加了一个问题
public class Tests extends BaseTest {
//This is used to do some setup in the super class
@Parameters({"testName", "env" })
public Tests( @Optional String testName, @Optional String env ) {
    super( null, testName, null, env );
}

@BeforeMethod
    public void setup() throws Exception {
        try {
            SomeData someData;
            SomeController someController;
            RemoteWebDriver driver;

            this.someData = SomeDataSetup.getSafeSomeData(new SomeData());
            this.driver = super.driver;
            this.someController = SomeControllerSetup
                    .getSomeController(new SomeController(
                            this.driver, this.someData));
            this.driver.navigate().to("https://" + this.host);

}  

public void test1() throws Exception {  

use driver from super
use someData from super
use someController is using the driver from super
}

public void test2() throws Exception {  

use driver from super
use someData from super
use someController is using the driver from super
}