所以,我有几个JUnit
类,每个类都包含一个测试方法列表。
每个方法都是相互独立的,没有直接的联系。
但我们有间接联系:所有方法都处理一个单例对象(它是Selenium Web Driver
实例,是的,我用1Web Driver
我所有测试的实例,因为为了创建新的对象实例,我们花了很多时间! )。
当测试方法在一个线程中逐步执行时,一切都OK。但也太长了
于是我决定加快速度
如何? - 我决定以并行模式运行所有测试方法。为此,我使用 Maven 和并行测试执行的特殊配置。
但我认为,这是一个新问题的根源,因为 - 结果我们有并行方法执行,但我们仍然只使用singleWeb 驱动程序实例。
我正在尝试寻找最佳解决方案:
我希望测试将以并行模式执行 - 它非常快。
我不希望每次测试都创建新对象 - 这是一个非常漫长的过程。
你能为我提供什么建议?
你会如何解决这个问题?
不幸的是,webDriver 不是线程安全的。恕我直言,最佳实践是在单独的线程中使用单独的 webDriver 实例运行每个测试类。最佳线程数是int threadNum = Runtime.getRuntime().availableProcessors() * 2;
我的项目执行时间从 30 分钟减少到 4 分钟。
修昔底德框架中使用了完全相同的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)