Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何将excel的特定行发送到testNG中的数据提供程序?_Selenium_Testng_Testng Dataprovider - Fatal编程技术网

Selenium 如何将excel的特定行发送到testNG中的数据提供程序?

Selenium 如何将excel的特定行发送到testNG中的数据提供程序?,selenium,testng,testng-dataprovider,Selenium,Testng,Testng Dataprovider,我创建了一个包含多行的excel,每行对应一个测试用例。Excel大约有22列(参数),包括一个“标志”列 我希望数据提供程序仅返回excel列中值为“Y”的列。用例是,当客户机想要运行一个特定的测试用例时,他们只需要将其标记为Y或N。如何在使用Selenium的TestNG中实现这一点 我的同事曾帮助我使用以下代码来实现这一点,但这并不能按照我的新代码结构工作 @DataProvider(name = "Order") public Object[][] menu()

我创建了一个包含多行的excel,每行对应一个测试用例。Excel大约有22列(参数),包括一个“标志”列

我希望数据提供程序仅返回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; 
     }
@DataProvider(name=“Order”)
公共对象[][]菜单()
{ 
Object[][]data=UtilLibrary.getData(“订单”);
int intColCount=UtilLibrary.datatable.getColumnCount(“订单”);
int j=0;
int arrRowCount=0;
对于(int i=0;i
上述代码仅将excel中带有标记“Y”的记录发送给数据提供程序。但是,只有当测试脚本有一个包含所有自动化步骤的@test方法时,它才起作用,而现在我有多个@test方法来模拟我传递相同数据提供者(顺序)的相同步骤


请告诉我是否有人使用类似的代码实现了这一点,或者TestNG是否具有向数据提供程序发送筛选的excel行的特定功能,我现在已经解决了这个问题。上面给出的Excel中带有flag='Y'行的代码不能使用多个@Test方法的原因只是由于一个愚蠢的错误。错误在于我稍微更改了excel结构,没有按照新标志列的索引修改上述代码