Генерация тестовых случаев в подходе, основанном на данных Robot Framework - PullRequest
0 голосов
/ 30 октября 2018

У меня есть вопрос о том, как избежать жесткого кодирования тестовых данных в тестовых примерах платформы Robot при использовании тестовых шаблонов.

У меня есть тестовые примеры, такие как:

Test template     Invalid Login
*** Test Cases ***    LOGIN             PASSWORD
Login admin           admin             ${INVALID_PWD}
Login student         student           ${INVALID_PWD}
Login learner         learner           ${INVALID_PWD}
Login staff           staff             ${INVALID_PWD}

и так далее ...

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

Другое, что я пробовал:

*** Test Cases ***
Mahara Invalid Login
[Template]    Invalid ${login} with ${password}
admin      aa
student    aa

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

То, что я хотел бы иметь, скажем, список логинов и паролей, или что-то в Python и заставить их использовать среду Robot для генерации таких тестов. Однако я понятия не имею, возможно ли это.

Я немного искал и, среди прочего, нашел этот пост: https://stackoverflow.com/a/25206407/10401931, который не выглядит многообещающим.

Затем я нашел несколько способов чтения .csv. Я могу добиться этого в Python, но он не отвечает на мой вопрос, как загрузить то, что я читаю в .csv, в этот подход на основе данных в Python. По сути, я думаю, что все сводится к тому, как заставить шаблон теста циклически проходить по заданному списку / диктату. Поскольку тестовый шаблон в основном является циклом for, может быть способ немного изменить этот цикл. Или нет?

Другим подходом может быть создание всего набора тестов .robot в виде файла на Python. Опять же, я знаю, как это сделать, но мне кажется, что это слишком сложно, я хотел бы найти более простой способ сделать это.

Буду признателен за небольшое движение в правильном направлении.

Спасибо

1 Ответ

0 голосов
/ 12 ноября 2018

Просто чтобы закончить здесь, я отвечу на мой вопрос.

Следующий тестовый пример выполняет ту работу, которую я хотел:

*** Test Cases ***
Mahara Invalid Login
[Template]    Invalid ${login} with ${password}
:FOR    ${login}    IN    @{invalid_logins.keys()}
\    ${login}    ${invalid_logins['${login}']}

В этом случае я загружаю тестовые данные из словаря Python, где ключом является логин, а значением - пароль.

Или я могу использовать файл .csv и сделать что-то вроде:

Mahara Invalid Login      
${all_rows}=    Get All Rows    ${invalid_login_file}    ${DELIMITER}    ${HEADER}
:FOR    ${row}    IN    @{all_rows} 
\    ${login}=    Set Variable    ${row[0]}
\    ${password}=    Set Variable    ${row[1]}
\    Invalid ${login} with ${password}

Получить все строки будет специальным ключевым словом, которое я использую для загрузки данных из файла .csv.

В обоих примерах мне не нужно много писать, просто подготовьте тестовые данные и напишите один для цикла в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...