【发布时间】:2021-02-22 02:57:34
【问题描述】:
我的目标是在以下组合上并行运行测试用例,并为每个组合生成范围报告,总共 8 个组合
- Windows(Chrome、Firefox、IE)
- Linux(Chrome、Firefox)
- Mac(Safari、Chrome、Firefox)
在网上搜索后想出了这个。
这个<suite> 并行运行所有<test> 标签,每个<test> 代表再次并行运行测试类的操作系统和浏览器组合。每个测试类都有一个 RemoteWebDriver 实例。
- 此解决方案是否正确或我需要进行任何更改?
- 一旦测试类开始增加,复杂性就会增加我想从所有 8 个测试标签中添加/删除测试类。
- 如果我只想运行一个组合(操作系统+浏览器),是否需要另一个 testng.xml 文件并编辑参数值?
- 如何获取每个组合的报告。由于所有测试都是并行和多线程运行的,如何跟踪每个测试?
TestNg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests">
<test name="Windows_Chrome" parallel="classes" thread-count="3">
<parameter name="os" value="windows" />
<parameter name="browser" value="chrome" />
<classes>
<class name="com.mag.SeleniumGrid.Test_001" />
<class name="com.mag.SeleniumGrid.Test_002" />
<class name="com.mag.SeleniumGrid.Test_00N" />
<!--Each class create RemoteWebDriver instance based on parameters-->
</classes>
</test>
<!-- ..... all 8 combinations -->
<test name="Linux_Chrome" parallel="classes" thread-count="3">
<parameter name="os" value="linux" />
<parameter name="browser" value="chrome" />
<classes>
<class name="com.mag.SeleniumGrid.Test_001" />
<class name="com.mag.SeleniumGrid.Test_002" />
<class name="com.mag.SeleniumGrid.Test_00N" />
</classes>
</test>
</suite>
【问题讨论】:
标签: java selenium testng selenium-grid testng.xml