gpt4 book ai didi

java - 如何使用excel或其他方法修改测试参数?

转载 作者:行者123 更新时间:2023-11-29 04:07:31 25 4
gpt4 key购买 nike

我想将测试参数从测试脚本中分离出来,实现数据驱动的自动化测试。我必须在 java 1.6 环境下,所以我不能使用需要 java 1.7+ 的 testNG。因此,我需要使用像 apache-poi 这样的解决方法来读取 excel 文件并配置参数以实现我的目标。

我不太明白如何从 xls 中获取 A 列中的值行,该行已在 B 列上打开为“1”或其他概念作为正在使用的测试参数。我不知道 apache-poi 是否应该像我在这个社区所做的研究那样做这样的工作,但似乎没有人以这种方式使用它。

 |  A  | B
1| ABC | 1
2| DEF | 0
3| GHI | 0
4| JKL | 0

B 列中的 1 和 0 可以是 boolean 值的其他表达式,也可以是多个正结果,但我们的想法是列出所有参数选项并打开或关闭它们以用于测试脚本。就像在 Select A from table where B = 1 的 sql idea 中一样。但是我在使用过程中只能得到值“1”而不是“ABC”。

脚本将是 getStringCellValue 或带有“ABC”值内容的东西作为运行测试的参数,而不是将“ABC”直接放在脚本中并在每次我们需要使用不同参数时更改它/它们。

顺便说一句,是否有其他方法可以使用 sql 语法并从文件中获取值?我与使用 xls 无关。但是使用 testNG 的 .xml 参数对我来说是不可行的,因为我需要在前面提到的 java 1.6 环境中。

感谢阅读。

更新:

    HSSFSheet hspsheet = workbook.getSheetAt(0);
List<HSSFRow> filteredhspRows = new ArrayList<HSSFRow>();
Iterator<Row> hspritr = hspsheet.iterator();
while (hspritr.hasNext()) {
HSSFRow rows = (HSSFRow) hspritr.next();
Iterator<Cell> hspcitr = rows.cellIterator();
while (hspcitr.hasNext())
{
HSSFCell cell = (HSSFCell) hspcitr.next();
if (cell.toString().contains("T"))
{
filteredhspRows.add(rows);
System.out.println(cell.getStringCellValue());
}
}
}

通过使用上面的代码,我只能获取包含“T”的单元格,但当 B 列中的对应值(同一行)为“T”时,我不仅可以获取 A 列中的值。

最佳答案

据我所知,通过 Apache POI 访问电子表格时没有 SQL 语法。

如果我没理解错的话,您或多或少对 A 的值感兴趣,其中 B 的值为 1。

您可以使用以下代码通过简单地遍历工作表的行来找出所有相关的 A 值:

Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.rowIterator();
Collection<String> relevantValuesFromA = new ArrayList<String>();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Cell bCellOfRow = row.getCell(1);
if ("1".equals(bCellOfRow.getStringCellValue())) {
relevantValuesFromA.add(row.getCell(0).getStringCellValue());
}
}

//now you can use relevantValuesFromA for your tests

关于java - 如何使用excel或其他方法修改测试参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com