创建一条完整的用例
创建一条在百度首页搜索 YouQu 的用例;
用例步骤
- 在浏览器访问百度首页;
- 搜索框输入YouQu;
封装用例步骤的方法
方法基类 base_page.py:: BasePage
:
python
from src.webui import WebUI
class BasePage(WebUI):
def __init__(self, page):
super().__init__(page)
方法主文件里面:baidu.py::BaiDu
:
python
from apps.autotest_my_app.page.base_page import BasePage
class BaiDu(BasePage):
def goto_baidu(self):
"""访问百度首页"""
self.goto("http://www.baidu.com")
def click_search_box(self):
"""点击搜索框"""
self.page.locator("#kw").click()
def input_keywords(self, keywords):
"""搜索框中输入关键词"""
self.page.locator("#kw").fill(keywords)
编写用例
所有的用例都在 case
目录下,用例文件以 test_
开头,用例 ID 结尾:test_mycase_001.py
python
# test_mycase_001.py
from apps.autotest_my_app.case import BaseCase
from apps.autotest_my_app.page.baidu import BaiDu
class TestMyCase(BaseCase):
def test_mycase_001(self, page):
"""百度首页搜索 YouQu """
browser = BaiDu(page)
# 在浏览器访问百度首页
browser.goto_baidu()
# 点击搜索框
browser.click_search_box()
# 输入YouQu
browser.input_keywords("YouQu")
self.assert_locator()
YouQu 提供一个全局默认的对象:
page
,默认使用系统自带的浏览器进行测试;如果需要指定其他第三方的浏览器,提供配置项可以指定浏览器对应的路径。还需要提供一个对象:
native_page
,它使用Playwright
最新的Chromium
浏览器进行测试。配置说明:
ini# setting/globalconfig.ini ;=============================== Web UI CONFIG =================================== ;为Web UI自动化测试提供一个fixture对象:page,它默认使用系统自带的浏览器进行测试。 ;框架还提供一个fixture对象:native_page,它使用最新的chromium浏览器进行测试。 ;以下配置项默认值为系统自带的浏览器的配置,如果是其他第三方的浏览器可以指定浏览器对应的路径。 ; def test_xxx_001(page): ; page.goto("www.baidu.com") ; ; def test_xxx_001(native_page): ; native_page.goto("www.baidu.com") ;指定浏览器启动的用户数据缓存目录 USER_DATE_DIR = {{HOME}}/.config/browser ;指定浏览器可执行文件路径 EXECUTABLE_PATH = /usr/bin/browser
用例继承了用例基类 base_case.py::BaseCase
:
python
# base_case.py
from apps.autotest_my_app.my_app_assert import MyAppAssert
from src.webui import WebAssert
class BaseCase(MyAppAssert, WebAssert):
"""用例基类"""
self.assert_locator()
是 Web UI 的专用断言语句,返回的 Playwright
的 expect
对象,因此它可以使用 expect 的所有方法;
比如:
python
self.assert_locator(page.locator("//nz-table//tbody/tr[1]")).to_have_text("xxx")
这样我们就完成了一条简单的 Web UI 自动化用例。