如何调整配置让TestNG+Selenium项目bat执行时@Test按顺序运行
解决方案
你遇到的并行执行问题根源在testng.xml的suite级并行配置,按以下步骤调整即可:
- 修改testng.xml核心配置
你当前配置里parallel="methods"代表所有测试方法并行执行,thread-count="2"指定了2个并发线程,这就是两个@Test方法同时运行的原因。你可以直接删除这两个属性,或者将parallel属性改为none,修改后的testng.xml参考如下:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Testing 07ZR"> <test name="Automation"> <classes> <class name="AjouterPanier.AjoutPanier"/> </classes> </test> <!-- Test --> </suite> <!-- Suite --> - 可选:保留部分并行能力的配置方案
如果后续你需要不同测试模块并行,仅同一个类下的方法串行,可以将parallel属性设置为parallel="tests",这样只有标签级别的用例才会并行,同一个 下的所有测试方法会按顺序执行。 - 可选:指定测试方法执行顺序
如果需要固定两个@Test方法的执行先后,可以给@Test注解添加priority参数,数值越小执行优先级越高,示例如下:// 第一个执行的测试方法 @Test(priority = 1) public void testLogin() { // 登录逻辑 } // 第二个执行的测试方法 @Test(priority = 2) public void testAddCart() { // 加购逻辑 } - 可选:类级别强制单线程执行
如果你不想修改全局suite配置,仅需要当前测试类的方法单线程运行,可以在测试类上添加@Test(singleThreaded = true)注解,该类下的所有测试方法就会强制串行执行,不受suite级并行配置影响。
注意:你提供的.bat执行脚本不需要做任何修改,调整完testng.xml或者测试代码后直接运行即可。
内容的提问来源于stack exchange,提问作者Tester testing
相关产品推荐
相关产品推荐

