NoraUI - 自定义数据提供者
NoraUI - Custom Data provider
我的项目已经存在使用其他工具的端到端方案。我们正在使用 NoraUI 重现我们的场景。该场景已重现并有效,但使用硬编码测试数据。
我们想将项目中的动态测试数据生成重现到这个项目中,但生成它们的方式非常复杂,因为
我们对我们的数据库有多个查询,这些查询可能会根据先例和其他条件的结果而改变。
目前似乎只有三种方法可以将数据注入场景:
- XLSX 文件
- CSV 文件
- 对数据库的单一查询
这是通过在 运行 开始时启动的 ScenarioInitiator 发生的。
有没有办法添加自定义方式将数据注入场景,或者例如在注入数据之前在 XLSX 文件中生成数据而不需要另一个项目?
- 创建新包 « noraui.data.xxx »(示例:« noraui.data.json »)
- 创建一个新的 java class(示例:« CustomJsonDataProvider »)
- 将此 class 扩展为“CommonDataProvider”并实施为 « DataInputProvider » 和 « DataOutputProvider »
在您的 XxxxxRobot.properties 文件中:
# type of dataProvider (EXCEL, CSV, DB, REST, noraui.data.xxx.YourCustomDataProvider)
dataProvider.in.type=noraui.data.json.CustomJsonDataProvider
dataProvider.out.type=noraui.data.json.CustomJsonDataProvider
CustomJsonDataProvider 示例class:
package noraui.data.json;
import noraui.data.CommonDataProvider;
import noraui.data.DataInputProvider;
import noraui.data.DataOutputProvider;
import noraui.exception.TechnicalException;
public class CustomJsonDataProvider extends CommonDataProvider implements DataInputProvider, DataOutputProvider {
public CustomJsonDataProvider() {
super();
logger.info("data provider used is ...");
}
@Override
public void prepare(String scenario) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeFailedResult(int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeWarningResult(int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeSuccessResult(int line) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeDataResult(String column, int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public int getNbLines() throws TechnicalException {
// TODO Auto-generated method stub
return 0;
}
@Override
public String readValue(String column, int line) throws TechnicalException {
// TODO Auto-generated method stub
return null;
}
@Override
public String[] readLine(int line, boolean readResult) throws TechnicalException {
// TODO Auto-generated method stub
return null;
}
}
我的项目已经存在使用其他工具的端到端方案。我们正在使用 NoraUI 重现我们的场景。该场景已重现并有效,但使用硬编码测试数据。
我们想将项目中的动态测试数据生成重现到这个项目中,但生成它们的方式非常复杂,因为 我们对我们的数据库有多个查询,这些查询可能会根据先例和其他条件的结果而改变。
目前似乎只有三种方法可以将数据注入场景:
- XLSX 文件
- CSV 文件
- 对数据库的单一查询
这是通过在 运行 开始时启动的 ScenarioInitiator 发生的。
有没有办法添加自定义方式将数据注入场景,或者例如在注入数据之前在 XLSX 文件中生成数据而不需要另一个项目?
- 创建新包 « noraui.data.xxx »(示例:« noraui.data.json »)
- 创建一个新的 java class(示例:« CustomJsonDataProvider »)
- 将此 class 扩展为“CommonDataProvider”并实施为 « DataInputProvider » 和 « DataOutputProvider »
在您的 XxxxxRobot.properties 文件中:
# type of dataProvider (EXCEL, CSV, DB, REST, noraui.data.xxx.YourCustomDataProvider) dataProvider.in.type=noraui.data.json.CustomJsonDataProvider dataProvider.out.type=noraui.data.json.CustomJsonDataProvider
CustomJsonDataProvider 示例class:
package noraui.data.json;
import noraui.data.CommonDataProvider;
import noraui.data.DataInputProvider;
import noraui.data.DataOutputProvider;
import noraui.exception.TechnicalException;
public class CustomJsonDataProvider extends CommonDataProvider implements DataInputProvider, DataOutputProvider {
public CustomJsonDataProvider() {
super();
logger.info("data provider used is ...");
}
@Override
public void prepare(String scenario) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeFailedResult(int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeWarningResult(int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeSuccessResult(int line) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public void writeDataResult(String column, int line, String value) throws TechnicalException {
// TODO Auto-generated method stub
}
@Override
public int getNbLines() throws TechnicalException {
// TODO Auto-generated method stub
return 0;
}
@Override
public String readValue(String column, int line) throws TechnicalException {
// TODO Auto-generated method stub
return null;
}
@Override
public String[] readLine(int line, boolean readResult) throws TechnicalException {
// TODO Auto-generated method stub
return null;
}
}