本框架主要是基于 Python + pytest + selenium + pytest-html/Allure + loguru + 邮件通知/企业微信通知/钉钉通知 实现的WEB UI自动化框架。
pipenv install
一键安装依赖包。├────case_utils/
│ ├────__init__.py
│ ├────allure_handle.py
│ ├────basepage.py
│ ├────data_handle.py
│ ├────get_driver.py
│ ├────get_results_handle.py
│ ├────platform_handle.py
│ ├────send_result_handle.py
│ └────url_handle.py
├────common_utils/
│ ├────__init__.py
│ ├────base_request.py
│ ├────bs4_handle.py
│ ├────dingding_handle.py
│ ├────files_handle.py
│ ├────time_handle.py
│ ├────wechat_handle.py
│ ├────yagmail_handle.py
│ └────yaml_handle.py
├────config/
│ ├────__init__.py
│ ├────allure_config/
│ │ ├────http_server.exe
│ │ ├────logo.svg
│ │ └────双击打开Allure报告.bat
│ ├────global_vars.py
│ ├────models.py
│ ├────path_config.py
│ ├────pytest_html_config/
│ │ └────pytest_html_report.css
│ └────settings.py
├────data/
│ ├────create_project_data.py
│ └────login_data.py
├────lib/
├────outputs/
├────page/
│ ├────__init__.py
│ ├────common_page.py
│ ├────home_page.py
│ ├────login_page.py
│ └────projects/
│ │ ├────__init__.py
│ │ ├────create_project_page.py
│ │ ├────project_detail_page.py
│ │ └────projects_page.py
└────test_case/
│ ├────__init__.py
│ ├────conftest.py
│ ├────test_login.py
│ └────test_projects/
│ │ ├────__init__.py
│ │ ├────conftest.py
│ │ └────test_create_project.py
├────conftest.py
├────Pipfile
├────Pipfile.lock
├────pytest.ini
├────README.md
├────.gitignore
├────run.py
jsonpath = "==0.82"
openpyxl = "==3.0.9"
pytest = "==6.2.5"
pyyaml = "==6.0"
requests = "==2.26.0"
loguru = "*"
pytest-rerunfailures = "*"
faker = "*"
deepdiff = "*"
pymysql = "*"
yagmail = "*"
selenium = "*"
pyautogui = "*"
pywinauto = "*"
pytest-html = "==2.1.1"
allure-pytest = "*"
beautifulsoup4 = "*"
webdriver-manager = "*"
requests-toolbelt = "*"
git clone https://gitlink.org.cn/floraachy/uiautotest.git
本地电脑搭建好 python环境,我使用的python版本是3.9
安装pipenv
# 建议在项目根目录下执行命令安装
pip install pipenv
注意:使用pipenv install会自动安装Pipfile里面的依赖包,该依赖包仅安装在虚拟环境里,不安装在测试机。
如上环境都已经搭建好了,包括框架依赖包也都安装好了。
config.settings.py
1)确认RunConfig的各项参数,可以调整失败重跑次数rerun
, 失败重跑间隔时间reruns_delay
,当达到最大失败数,停止执行max_fail
2)确认测试完成后是否发送测试结果,由SEND_RESULT_TYPE控制,并填充对应邮件/钉钉/企业微信配置信息
3)指定日志收集级别,由LOG_LEVEL控制
config.global_vars.py
1)删除 data
目录下所有文件
2)删除page
目录下所有文件
3)删除 test_case
目录下所有编写的用例
page
目录新建一个py
文件,用于管理元素的定位以及页面操作方法data
目录下新建一个py
文件,用于管理测试用例中所需的测试数据case_common
,用于配置allure报告,参考如下:case_common = {
"allure_epic": "GitLink",
"allure_feature": "登录模块",
}
# allure_story以及severity用于配置allure报告,建议配置
# 字典命名可以自定义
# title字段建议保留,涉及到报告上的显示
login_pop_success = {
"allure_story": "弹窗登录",
"cases":
[
{"title": "弹窗登录: 正确用户名和密码登录成功", "user": "${login}", "password": "${password}",
"run": False,
"severity": "critical"}
]
}
test_case
目录编写测试用例pytest
命名规则。在pycharm>terminal或者电脑命令窗口,进入项目根路径,执行如下命令(如果依赖包是安装在虚拟环境中,需要先启动虚拟环境)。
> python run.py (默认在test环境运行测试用例, 报告采用allure)
> python run.py -m demo 在test环境仅运行打了标记demo用例, 默认报告采用allure
> python run.py -env live 在live环境运行测试用例
> python run.py -env=test 在test环境运行测试用例
> python run.py -report=pytest-html (默认在test环境运行测试用例, 报告采用pytest-html)
> python run.py -driver chrome edge (使用chrome以及edge浏览器运行测试用例)
注意:
run.py
中右键运行对于框架任何问题,欢迎联系我!