NoraUI - 自定义数据提供者

NoraUI - Custom Data provider

我的项目已经存在使用其他工具的端到端方案。我们正在使用 NoraUI 重现我们的场景。该场景已重现并有效,但使用硬编码测试数据。

我们想将项目中的动态测试数据生成重现到这个项目中,但生成它们的方式非常复杂,因为 我们对我们的数据库有多个查询,这些查询可能会根据先例和其他条件的结果而改变。

目前似乎只有三种方法可以将数据注入场景:

这是通过在 运行 开始时启动的 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;
    }

}