微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – JUnit.并行运行.但所有测试方法都处理单例实例.怎么解决?

所以,我有几个JUnit类,每个类都包含一个测试方法列表.
每种方法都是相互独立的,没有直接的联系.
但我们有间接连接:所有方法都处理一个单独的对象(它是Selenium Web驱动程序实例,是的,我使用1个Web驱动程序实例进行所有测试,因为为了制作新的对象实例,我们花了很多时间!).

当测试方法一个线程中逐步执行时,一切都好.但它太长了,

所以,我决定提高速度,
怎么样? – 我决定在并行模式下运行所有​​测试方法.为此,我使用具有特殊配置的maven进行并行测试.

但我认为,这是一个新问题,因为 – 结果我们有并行方法执行,但我们仍然只使用单个Web驱动程序实例.

我正在努力寻找最佳解决方案:

我希望测试将以并行模式执行 – 它真的很快.

我不希望每次测试都创建新对象 – 这是一个非常漫长的过程.

你能为我提供什么建议?

你怎么解决这个问题?

解决方法:

不幸的是,webDriver不是线程安全的. Imho,最佳实践是在单独的线程中使用单独的webDriver实例运行每个测试类.最佳线程数是
int threadNum = Runtime.getRuntime().availableProcessors()* 2;我项目的执行时间从30分钟减少到4分钟.
在修昔底德框架中使用完全相同的方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐