如果我的脚本使用带有 Python 的 Selenium,我如何使用 BDD 在 testrail 中编写测试用例?

How can I use BDD for writing test cases in testrail if I used Selenium with Python for my scripts?

我正在尝试学习 Android 移动应用程序自动化的 BDD(行为),在 PyCharm 中使用 Selenium 和 Python 完成(所以不是纯粹的 Python;而且我一直不明白其中的区别,即使我试图找到有关的信息)。 我是初学者,所以我需要使用带有 Python 脚本的 Selenium 在 TestRail 中创建测试用例(这是我的目标)。 我听说过黄瓜配小黄瓜,但我很困惑。 我需要学习纯Python吗?我可以在 PyCharm 中编写测试用例吗? 谁能帮我一些建议? 从哪里开始?提前致谢。

PS:我有一些与文档的链接,但我仍然感到困惑:https://behave.readthedocs.io/

我会尝试为 webdriver 做类似这样的页面对象模式测试:
对于页面:

class LoginPage(BasePage):

def __init__(self, context):
    BasePage.__init__(self,
                      context.browser,
                      )
    self.context = context
    self.base_url = URL.TWITTER
    self.visit(url=self.base_url)

locator_dictionary = LoginLocators.__dict__

def login(self, username='', password=''):
    self.username.send_keys(username)
    self.password.send_keys(password)
    self.submit_btn.click()
    return TwitterTimeline(self.context)

和 base_page:

class BasePage(object):
"""
Really the only method used here is '__getattr__' now
"""

def __init__(self, browser, base_url='', **kwargs):
    self.browser = browser
    self.base_url = base_url
    self.timeout = 10

@contextlib.contextmanager
def wait_for_page_load(self, timeout=10):
    old_page = self.find_element_by_tage_name('html')
    yield
    WebDriverWait(self, timeout).until(staleness_of(old_page))

def find_element(self, *loc):
    return self.browser.find_element(*loc)

def find_elements(self, *loc):
    return self.browser.find_elements(*loc)

def visit(self, url='', route=''):
    if not url:
        url = self.base_url
    self.browser.get(url + route)

def hover(self, element):
    ActionChains(self.browser).move_to_element(element).perform()
    # I don't like this but hover is sensitive and needs some sleep time
    time.sleep(5)

def __getattr__(self, what):
    try:
        if what in self.locator_dictionary.keys():
            try:
                element = WebDriverWait(self.browser, self.timeout).until(
                    EC.presence_of_element_located(self.locator_dictionary[what])
                )
            except(TimeoutException, StaleElementReferenceException):
                traceback.print_exc()

            try:
                element = WebDriverWait(self.browser, self.timeout).until(
                    EC.visibility_of_element_located(self.locator_dictionary[what])
                )
            except(TimeoutException, StaleElementReferenceException):
                traceback.print_exc()
            # I could have returned element, however because of lazy loading, I am seeking the element before return
            return self.find_element(*self.locator_dictionary[what])
    except AttributeError:
        super(BasePage, self).__getattribute__("method_missing")(what)

def method_missing(self, what):
    print "No %s here!" % what

整篇文章在这里:
http://blerdeyeview.com/testing-with-behave-framework/
这是另一个:
https://www.testrisk.com/2015/03/page-object-patter-for-selenium-test.html

我也是初学者,这对我很有帮助。我正在测试网站,而不是 Android,但它应该适合您的想法。
非常适合为 Gherkin
编写步骤 祝你好运!

P.S。我在每个子页面 class 上都使用了定位器字典,因为它运行良好。不幸的是,该方法没有自动完成功能,但我相信 Android 应用程序不需要字典。它应该像在这些链接中写的那样工作。
已编辑更多代码输入