【发布时间】:2021-10-13 17:35:21
【问题描述】:
我有下面的类,它具有可重用的 WebDriver 功能。
我将所有方法设为静态,因为没有创建对象,从我的测试用例类中我可以访问它们。还要记住“在静态方法上同步时,监视器属于该类。”
public class WebCommand {
//Go to Url
public static void goToUrl(String url,WebDriver driver) {
driver.get(url);
}
}
所以从我的 Testcase 类中,我直接调用这个方法,使用 private static ThreadLocal driver = new ThreadLocal();
WebCommand.goToUrl("https://blazedemo.com/login",driver);
由于我在多个线程上并行运行,因此要对 WebCommand 类中的方法进行线程安全,最好的方法应该是什么?
即使我将方法设置为非静态的,据我所知,它也不能保证线程安全。任何帮助将不胜感激。
public void goToUrl(String url,WebDriver driver) {
driver.get(url);
}
//Then from TestCase class, call as WebCommand instance -new WebCommand ();
【问题讨论】:
-
我添加了一个简短的答案,但也许我不完全确定您对线程安全的担忧是什么。您认为此代码存在特定问题吗?如果您更新问题并提供更多详细信息并回复我的评论,我可以更新答案。
-
It;'s only pass the parameters so far 我没有看到任何问题,因为我只有很少的测试用例,谢谢你的回答,我也赞成..我会等待接受它社区的回答很少。
标签: java multithreading selenium webdriver