| actor 测试工程师 as tester |
| participant 命令行参数 as command |
| participant 配置信息 as config |
| participant 底层代码 as code |
| |
| |
| autonumber |
| tester -> command : 通过命令执行测试用例,通过参数指定浏览器: pytest --browser=Chrome |
| command -> config : 获得配置信息 |
| config -> code: 传给底层代码,使用配置信息 |
| def pytest_addoption(parser): |
| |
| mygroup = parser.getgroup("hogwarts") |
| |
| mygroup.addoption("--browser", |
| |
| default='Chrome', |
| |
| dest='browser', |
| |
| help='set your browser, \ |
| such as:Chrome, Firefox, Headless...' |
| ) |
| def pytest_configure(config): |
| browser = config.getoption("--browser", default='Chrome') |
| tmp = {"browser": browser} |
| global_env.append(tmp) |
- 通过 pytest_addoption hook 函数,配置命令行参数
- 通过 pytest_configure 函数,接收命令行参数信息
- 将参数保存到变量中
| global_env = {} |
| def pytest_addoption(parser): |
| |
| mygroup = parser.getgroup("hogwarts") |
| |
| mygroup.addoption("--browser", |
| |
| default='Chrome', |
| |
| dest='browser', |
| |
| help='set your browser, \ |
| such as:Chrome, Firefox, Headless...' |
| ) |
| |
| def pytest_configure(config): |
| browser = config.getoption("browser", default='Chrome') |
| browser_conf = {"browser": browser} |
| global_env.update(browser_conf) |
- 通过命令行执行测试用例:
pytest 测试用例文件.py --browser="浏览器名称"
- 后续结合 jenkins 实现切换浏览器+持续集成
| |
| from selenium import webdriver |
| from conftest import global_env |
| class TestArgs(): |
| def setup(self): |
| self.browser = global_env.get("browser") |
| print(self.browser) |
| if self.browser == 'Firefox': |
| self.driver = webdriver.Firefox(executable_path="/path/to/geckodriver") |
| elif self.browser == 'Remote': |
| executor_url = "https://selenium-node.hogwarts.ceshiren.com/wd/hub" |
| capabilities = {"browserName": "chrome", "browserVersion": "99.0"} |
| self.driver = webdriver.Remote(command_executor=executor_url, desired_capabilities=capabilities) |
| else: |
| self.driver = webdriver.Chrome() |
| self.driver.implicitly_wait(5) |
| self.driver.maximize_window() |
| |
| def test_option(self): |
| print("用例") |
| |
| def teardown(self): |
| self.driver.quit() |
| print("quit") |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)