我的问题陈述是我想通过在运行时仅指定字段名称来从 excel 工作表中读取数据,然后这个函数应该传递工作簿名称、工作表名称等从特征文件中读取数据。我已经有点实现了,如下所示,但我有一个问题,如果我有多个步骤定义文件,那么我如何仅通过指定字段名称来读取数据呢? 我有以下功能文件 '功能:从 Excel 中读取数据
场景大纲:打印订单详情
Given Excel Sheet with Name as "secTypes" and subSheet name as "equity" and rowNumber as <RowNumber> is read
When Read Symbol as "<SYMBOL>" and orderType as "<ORDERTYPE>" and print the values
Examples:
|RowNumber | SYMBOL | ORDERTYPE |
| 0 | SYMBOL | ORDERTYPE |
| 1 | SYMBOL | ORDERTYPE |'
下面是给定的代码和时间 ' 公共类 TestSteps 扩展 SpecBuilders {
public HashMap<String, String> hashMap = new HashMap<String, String>();
public String workbookName, sheetName;
public int rowNumber;
public String updatedJsonPayload, postResponse;
CreatePayload createPayLoad = new CreatePayload();
SpecBuilders specBuilder = new SpecBuilders();
@Given("Excel Sheet with Name as {string} and subSheet name as {string} and rowNumber as {int} is read")
public void excelSheet_variables_read(String workbookname, String sheetname, Integer rownumber)
throws IOException, InvalidFormatException {
hashMap = Testutils.addSheetDataToHashMap(workbookname, sheetname, rownumber);
workbookName = hashMap.get("workbookName");
sheetName = hashMap.get("sheetname");
rowNumber = Integer.parseInt(hashMap.get("rownumber"));
}
@When("读取 Symbol 作为 {string} 和 orderType 作为 {string} 并打印值") public void read_symbol_orderType_and_print_it(String symbol, String orderType) throws InvalidFormatException, IOException { System.out.println("订单类型为" + orderType); System.out.println("符号是" + 符号);
System.out.println("After Reading Excel-----------------------");
orderType = getExcelData.getData(workbookName, sheetName, rowNumber, orderType);
symbol = getDataFromExcel(symbol);
System.out.println("order type is " + orderType);
System.out.println("symbol is " + symbol);
}'
要读取符号的值,请在 TestSteps.java 本身中定义以下函数
'public String getDataFromExcel(String fieldName) 抛出 InvalidFormatException, IOException { 返回 getExcelData.getData(workbookName, sheetName, rowNumber, fieldName); }'
如何定义 getDataFromExcel 以及在哪里定义它以便我可以从我的框架中的任何地方读取数据?
我已经在测试步骤类本身中定义了函数