设置和说明:
以下是行为:
1.1。在执行时它启动主页>执行Homepagetest的优先级>然后启动
然后执行SignIntest的priority1
在此之后,它执行HomepageTest的priority2和SigninTest的priority2,依此类推。
1.2。一旦执行完成,它将关闭1个浏览器(主页)但无法关闭另一个浏览器(SigninPage)
场景2:当我使用threadcount = 2时:
行为:2.1。它同时打开2个浏览器在一个浏览器中它启动URL(对于URL等待10秒)但在另一个浏览器中它不会启动任何URL(在整个测试过程中保持空白)
2.2:执行就像上面提到的1.1一样在执行了几个测试后,另一个第三个更加强大的启动...这个第三个浏览器关闭一次执行
完成但剩余的2个浏览器(空白浏览器和带URL的浏览器)仍处于打开状态
2.3执行完成后关闭1个浏览器,但无法关闭没有启动URL的浏览器
Quetion1:为什么执行不在Group的基础上。它基于1.1中提到的优先级运行,看起来不正确。
理想情况下,它应该执行testClass1的Group1和2然后它应该关闭该浏览器然后启动第二个浏览器并运行Group1和2测试然后关闭该浏览器
问题2:为什么它无法关闭1浏览器。我使用窗口句柄计算了活动窗口,计数返回1,而它应该是2
问题3:当thread-count = 2时,为什么它会启动一个空白浏览器(如2.1中所述)
我认为你是混合组和优先级,并尝试使用不正确的工具来实现某些目标。并且您有额外的代码可能在一个线程环境中工作,但它不能在并行环境中工作,因为并行环境本质上是异步的。
答案1:
答案2:
答案3:
供将来参考:TestNG或SeleniumWebDriver没有这种不稳定的行为或事件两者的组合。这是所有QA工程师使用的最常见的测试工具组合。我的公司有线程计数= 16的并行测试,它们都工作正常。
请记住,测试代码应针对并行性进行优化,您不能只运行为同步环境设计的常规旧测试。