NoraUI - 自定义数据提供程序

时间:2017-06-28 10:11:17

标签: noraui

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

我们希望将我们项目中的动态测试数据生成重现为这一项,但是生成它们是一种非常复杂的方法 我们的数据库有多个查询,可以根据先例和其他条件的结果进行更改。

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

  • XLSX档案
  • CSV文件
  • 单个查询到数据库

这是通过在运行开始时启动的ScenarioInitiator实现的。

有没有办法添加自定义方式将数据注入场景,或者例如在注入数据之前在XLSX文件中生成数据而不需要其他项目?

1 个答案:

答案 0 :(得分:1)

  • 创建一个新的包含«noraui.data.xxx»(例如:«noraui.data.json»)
  • 创建一个新的java类(例如:«CustomJsonDataProvider»)
  • 将此类扩展为“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类的示例:

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;
    }

}