我正在尝试用selenium编写一个逻辑,在那里我正在自动化一个测试接受流。在进行此测试时,考生可能在每个节点中得到设置-1/set-2,这将由系统随机分配。
中传递
有谁能让我知道根据情况在set-1/SE-2之间切换的最佳方法吗?对不起,我还没有编码任何东西要分享。我从来没有处理过这种情况。任何建议都会有帮助。
提前谢谢你。

发布于 2020-09-04 16:19:03
从excel获取数据并将其传输到方法
首先,每个数据集应该放在单独的excel表上。

工作表名称: Dataset1
列名: Column1
它接受列中的所有值(列名除外),然后可以以任何方式使用它们。在这种情况下,TestNG将在测试方法中循环数据。
解决方案的第二部分是从excel中获取数据。
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class BaseTestProvider {
Object[][] dataSupplierBase(String path, String sheetname) throws IOException {
File file = new File(path); //FILE name
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheet(sheetname);//SHEET name
wb.close();
int lastRowNum = sheet.getLastRowNum();
int lastCellNum = sheet.getRow(0).getLastCellNum();
Object[][] obj = new Object[lastRowNum][1];
for (int i = 0; i < lastRowNum; i++) {
Map<Object, Object> datamap = new HashMap<>();
for (int j = 0; j < lastCellNum; j++) {
datamap.put(sheet.getRow(0).getCell(j).getStringCellValue(), sheet.getRow(i + 1).getCell(j).getStringCellValue());
}
obj[i][0] = datamap;
}
return obj;
}
}第三部分是TestNG的数据提供者。
public class TestCaseDataProvider extends BaseTestProvider {
@DataProvider(name = "test1")
public Object[][] dataSupplier1() throws IOException {
String sheetname = "Dataset1";
return dataSupplierBase(“path to excel file”, sheetname);
}接下来,使用映射从工作表和列获取数据。
@Test(dataProvider = "test1", dataProviderClass = TestCaseDataProvider.class)
public void testMethod(Map<Object, Object> map) {
System.out.println(String.valueOf(map.get("Column1")));
}因此,通过手动或编程方式更改数据提供程序名称,您可以在数据集之间切换。
未解决:以一种速度获取所有列并对行进行操作。
https://stackoverflow.com/questions/63742054
复制相似问题