Импорт сценариев в json-формате
Если на вашем проекте имеются готовые автотесты, вы можете импортировать их в сервис
QA Robot в json-формате, чтобы избежать затрат времени на их перезаписывание через конструктор.
Режим импорта
Чтобы импортировать json-файл, необходимо переключиться из режима конструктора в режим импорта с помощью специальной ссылки.

Обратите внимание!
Если ваш тест содержит файлы для загрузки, то прежде чем импортировать тест, вам следует загрузить необходимые файлы в режиме конструктора в специальную область и только затем импортировать json-файл со сценарием.
Структура файла
Для успешного импорта требуется соответствие json-файла некоторым правилам.

В структуре допустимы два массива: steps (обязательно) и variables (опционально). В массиве steps объектами являются шаги сценария, в массиве variables - используемые в тесте переменные.
{
  "variables": [
    {
      "name": "EMAIL",
      "value": "{{GENERATOR_EMAIL}}"
    }
  ],
  "steps": [
    {
      "description": "Кликнем на кнопку \"Регистрация\"",
      "action": "CLICK",
      "target": {
        "locatorType": "BY_NAME",
        "locatorValue": "REGISTER[EMAIL]"
      }
  ]
}	
Массив steps
Обязательными ключами шагов являются description и action.

description - это название или описание шага в словесном виде.
action - команда, которую необходимо выполнить.
Возможные значения: OPEN, TYPE, SELECT, FILE_UPLOAD, CLICK, MOVE_TO, EXIST, VISIBLE, TEXT_EQUAL, TEXT_CONTAIN, COUNT, PAUSE. Подробнее о каждой команде вы можете прочитать здесь.
"description": "Кликнем на кнопку \"Регистрация\"",
"action": "CLICK",
Для указания локатора используется ключ target, который имеет вложенное значение, состоящее из locatorType и locatorValue.

locatorType - это тип используемого локатора.
Может принимать значения: XPATH, CSS, BY_NAME, BY_ID, BY_LINK, SPECIAL, FROM_VAR. Подробнее о каждом из типов вы можете прочитать.
locatorValue - значение локатора выбранного типа.
"target": {
        "locatorType": "BY_NAME",
        "locatorValue": "REGISTER[EMAIL]"
      }
В командах OPEN, TYPE, SELECT, FILE_UPLOAD, TEXT_EQUAL, TEXT_CONTAIN, COUNT, PAUSE обязательно указание ключа value. В зависимости от команды, value может задавать url, по которому нужно перейти, эталонный текст для сравнения или количество секунд, на которое необходимо приостановить текст. Подробнее о каждой команде вы можете прочитать здесь.
"value": "file.gif"
Для ряда команд доступны дополнительные опции.

"optional": "1" - необязательный шаг;
"modificator": "RANDOM" - случайный элемент из набора;
"waitUntil": "N" - ожидать результат выполнения команды в течение N секунд;
"saveToVar": "variableName" - сохранить в переменную variableName.
{
      "description": "Отправим форму регистрации",
      "action": "CLICK",
      "target": {
        "locatorType": "CSS",
        "locatorValue": "form.register .btn.submit",
        "saveToVar": "variableName",
        "modificator": "RANDOM"
      },
     "optional": "1",
     "waitUntil": "N"
}
Массив variables
Обязательными ключами переменных являются name и value.

name - имя переменной.
value - значение переменной. Может принимать значения {{GENERATOR_EMAIL}}, {{GENERATOR_PASSWORD}} или любое иное значение (без двойных фигурных скобок).
"variables": [
    {
      "name": "EMAIL",
      "value": "{{GENERATOR_EMAIL}}"
    },
    {
      "name": "PASSWORD",
      "value": "Какой-то пароль"
    }
  ],
Список доступных команд
OPEN
открывает страницу в браузере по адресу, указанному в value

Ссылка на документацию
"description": "Откроем страницу поиска",
"action": "OPEN",
"value": "/search/"
"waitUntil": "5"
TYPE
набирает текст, указанный в value, в поля для ввода текста

Ссылка на документацию
"description": "Укажем имя",
"action": "TYPE",
"value": "QA Robot",
"target": {
"locatorType": "BY_NAME",
"locatorValue": "form_input_name"
},
"optional": "1",
"waitUntil": "5"
SELECT
выбирает одно из значений в выпадающем списке

Ссылка на документацию
"description": "Выберем Россию",
"action": "TYPE",
"value": "RUSSIA",
"target": {
"locatorType": "BY_NAME",
"locatorValue": "form_input_name"
},
"optional": "1",
"waitUntil": "5"
MOVE_TO
эмулирует наведение курсора на элемент

Ссылка на документацию
"description": "Наведем курсор на случайный товар",
"action": "MOVE_TO",
"target": {
"locatorType": "BY_LINK",
"locatorValue": "Текст ссылки",
"modificator": "RANDOM"
},
"optional": "1",
"waitUntil": "5"

CLICK
cовершает клик левой кнопкой мыши по элементу

Ссылка на документацию
"description": "Кликнем на ссылку",
"action": "CLICK",
"target": {
"locatorType": "BY_LINK",
"locatorValue": "Текст ссылки",
"modificator": "RANDOM"
},
"optional": "1",
"waitUntil": "5"

FILE_UPLOAD
загружает файл, название которого указано в value

Ссылка на документацию
"description": "Загрузим файл с резюме",
"action": "FILE_UPLOAD",
"value": "cv.pdf",
"target": {
"locatorType": "CSS",
"locatorValue": ".b_form input_file"
},
"waitUntil": "5"

PAUSE
приостанавливает выполнение теста на время, указанное в value в секундах

Ссылка на документацию
"description": "Подождём",
"action": "PAUSE",
"value": "5"
TEXT_EQUAL
проверяет наличие текста на странице и сравнивает его с эталонным

Ссылка на документацию
"description": "Текст совпадает",
"action": "TEXT_EQUAL",
"value": "Проверочный текст",
"target": {
"locatorType": "CSS",
"locatorValue": ".logo-main",
"modificator": "RANDOM"
},
"optional": "1",
"waitUntil": "5"
TEXT_CONTAIN
проверяет наличие текста, указанного в value

Ссылка на документацию
"description": "Текст совпадает",
"action": "TEXT_CONTAIN",
"value": "Проверочный текст",
"target": {
"locatorType": "CSS",
"locatorValue": ".logo-main",
"modificator": "RANDOM"
},
"optional": "1",
"waitUntil": "5"
COUNT
проверяет количество элементов с заданным локатором

Ссылка на документацию
"description": "Проверим, что колчество элементов равно 10 штукам",
"action": "COUNT",
"value": "10",
"target": {
"locatorType": "CSS",
"locatorValue": ".blog__item"
},
"optional": "1",
"waitUntil": "5"
EXIST
проверяет наличие хотя бы одного элемента на странице с заданным локатором

Ссылка на документацию
"description": "Проверим, что элемент существует",
"action": "EXIST",
"target": {
"locatorType": "XPATH",
"locatorValue": "//div[3]//div[4]/div[2]"
},
"optional": "1",
"waitUntil": "5"
VISIBLE
проверяет видимость элемента на странице

Ссылка на документацию
"description": "Проверим, что элемент виден пользователю",
"action": "VISIBLE",
"target": {
"locatorType": "XPATH",
"locatorValue": "//div[3]//div[4]/div[2]",
"modificator": "RANDOM"
},
"optional": "1",
"waitUntil": "5"
Made on
Tilda