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