使用 TestNG DataProvider 时,有没有办法从 SAME Excel sheet 读取和写入参数?

When using TestNG DataProvider is there a way to read and write parameters from the SAME Excel sheet?

我对 Java 和 TestNG 还是比较陌生,所以如果我使用了不正确的技术术语,请原谅我。我会全天留意回复,以防我需要更正或澄清。

在我编写的自动化测试中,我通过数据提供程序通过 Excel sheet 传递我的参数。整个部分都很好。但是,我现在想在一个元素上执行 getText() 并将该字符串复制回数据提供程序正在读取的 excel sheet。

这是我的意图的一个例子:

//Grabs Parameters to be used from Excel Sheet
@DataProvider
public Object[][] getData(){
suiteXls = new Xls_Reader(System.getProperty("user.dir")+"//src//testData.xlsx")
List<String> sheetNames = new ArrayList<String>();
sheetNames.add("TestStrings");
return TestUtilFinal.getData(suiteXls,sheetNames);
}

//Test Begins
@Test(dataProvider="getData")
public void Test1(String Value_1, String Operator, String Value_2, String Output){
// do some work here
Output.saveToCell();

我可能看到的一个问题是保存值的单元格是动态的。

Here is what the excel sheet would look like before the test is run

Here is what the same sheet would like AFTER the test is run. 任何帮助或见解将不胜感激!谢谢

  1. 我建议将您的输入视为不可变的。我发现,当您修改流程的输入时,当您重复该流程(在测试中经常这样做)时,很快就会不清楚当前结果的来源。通常最好创建一个包含 some/all 输入数据和输出数据的唯一输出文件。我经常使用构建修订 and/or 时间戳来命名此类输出文件,以便每个文件都是唯一且可引用的。
  2. 如果您真的想修改您的输入,那么您需要引用 Excel "Row" 对象进行测试。例如您可以将此类添加到提供给测试的数据中。
  3. 从您的 getData 方法看不清楚,但我怀疑您正在使用 Apache POI(直接或间接)从 Excel 工作表中读取数据。 Whosebug 和其他地方有很多使用 Apache POI 读取和写入数据行的示例。您只需要维护对测试用例的 Row 对象的引用,然后知道将输出写入哪个列 (cellnum)。