У меня проблемы с выполнением теста стека браузеров с использованием поведенческого поведения и python. Мне удалось написать тест, который обрабатывает вход в веб-приложение. Теперь я хочу использовать эту логику в качестве фоновой спецификации для моего следующего теста в пользовательской панели.
Как мне реализовать мой первый тест в качестве фоновых шагов, что именно я должен написать в steps.py?
Когда я делаю простые шаги, как в моем первом тесте, он не работает, я получаю все неопределенные переменные
Мой тест для входа выглядит так:
.feature файл:
Feature: login functionality
Scenario: can login to panel
When visit url "https://"
When email field with name "mat-input-0" is given "florian@"
When password field with name "mat-input-1" is given "xxx"
When submit button with name "div.action-btns" is clicked
Then url becomes "https://xxx"
А это мой файл шага:
import time
@when('visit url "{url}"')
def step(context, url):
context.browser.get(url)
@when('email field with name "{selector}" is given "{value}"')
def step(context, selector, value):
elem = context.browser.find_element_by_id(selector)
elem.send_keys(value)
@when('password field with name "{selector}" is given "{value}"')
def step(context, selector, value):
elem = context.browser.find_element_by_id(selector)
elem.send_keys(value)
@when('submit button with name "{selector}" is clicked')
def step(context, selector):
elem = context.browser.find_element_by_css_selector(selector).click()
time.sleep(5)
@then('url becomes "{url}"')
def step(context, url):
time.sleep(5)
assert context.browser.current_url == url
Это сработало, и я хочу использовать его в качестве основы для дальнейших испытаний.
То, что я пробовал, было примерно таким:
.featurefile:
Feature: panel create server functionality
tests if it's possible to create a server
Background: Login to the panel with test account login data
Given the user is logged in the panel
When visit url "https://xxx"
When email field with name "mat-input-0" is given "xxx"
When password field with name "mat-input-1" is given "xxx"
When submit button with name "div.action-btns" is clicked
Then url becomes "https://xxx"
Scenario: user can create a server
When user clicks on new server tile with class "kachel kachel-add noDrag kachel-add-server"
When name field "server-name focus-first ng-valid-maxlength ng-touched ng-not-empty ng-dirty ng-valid-parse ng-valid ng-valid-required" is given "random name"
When connect to internet control "pubnet" is activated
Then ....