我创建了一个包含多行的 excel,每一行对应一个测试用例。Excel 有大约 22 列(参数),包括一个“标志”列。
我希望 Dataprovider 仅返回那些在 excel 列中具有值“Y”的列。用例是,当客户端想要运行特定的测试用例时,他们只需要将其标记为 Y 或 N。在带有 Selenium 的 TestNG 中如何实现这一点?
我的同事使用以下代码帮助我实现了这一点,但这不适用于我的新代码结构。
@DataProvider(name = "Order")
public Object[][] menu()
{
Object[][] data = UtilLibrary.getData("Order");
int intColCount = UtilLibrary.datatable.getColumnCount("Order");
int j = 0;
int arrRowCount=0;
for (int i = 0; i < data.length; i++) {
if((data[i][intColCount-1]).equals("Y"))
{
arrRowCount++;
}
}
j=0;
Object[][] retData = new Object[arrRowCount][intColCount];
for (int i = 0; i < data.length; i++)
{
if ((data[i][intColCount-1]).equals("Y")) {
retData[j] = data[i]; j++; }
}
return retData;
}
上面的代码仅将 excel 中 flag='Y' 的记录发送到 Dataprovider。但是,只有当测试脚本有一个具有所有自动化步骤的 @Test 方法时,它才有效,而现在我有多个 @Test 方法来模拟相同的步骤,这些步骤我传递了同一个 Dataprovider(Order)。
让我知道是否有人使用类似的代码实现了这一点,或者 TestNG 是否具有将过滤后的 excel 行发送到 Dataprovider 的特定功能