Шаги фоновая логика для тестов поведения Python - PullRequest
0 голосов
/ 27 мая 2019

У меня проблемы с выполнением теста стека браузеров с использованием поведенческого поведения и 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 ....
...