NoraUI - поставщик пользовательских данных

В моем проекте уже есть сквозной сценарий с использованием другого инструмента. Мы воспроизводим наш сценарий, используя NoraUI. Сценарий воспроизводится и работает, но с жестко закодированными данными тестирования.

Мы хотели бы воспроизвести динамическое тестирование данных, которые мы имели в нашем проекте, в этот, но это довольно сложный способ генерировать их, так как у нас есть несколько запросов к нашей базе данных, которые могут меняться в зависимости от результата прецедентов и других условий.

Кажется, на данный момент есть только три способа ввода данных в сценарий:

  • Файл XLSX
  • CSV файл
  • Одиночный запрос к БД

И это происходит через ScenarioInitiator, который запускается в самом начале цикла.

Есть ли способ добавить пользовательский способ ввода данных в сценарий или, например, создать данные внутри файла XLSX, прежде чем его данные будут введены без необходимости другого проекта?

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

}
Другие вопросы по тегам