总结的相关问题: https://ceshiren.com/t/topic/27834
selenium相关知识总结 https://ceshiren.com/t/topic/28709
接口自动化框架 https://ceshiren.com/t/topic/27861
https://ceshiren.com/t/topic/16640
https://ceshiren.com/t/topic/24307
接口加密 https://ceshiren.com/t/topic/3591
har生成接口用例 https://ceshiren.com/t/topic/27975
1.以PO模型搭建测试框架
1.创建page、test_cases包,分别放业务操作和测试用例
2.(1)封装类BasePage,把driver初始化封装在初始化方法中,把元素定位、切换frame/windows、处理弹框等操作等基础操作封装在这个类中。
(2)其他页面均继承BasePage(登录页面与其他页面等同,之后可以放在conftest.py去引用)
断言:第三方插件断言
yaml案例:封装测试用例到yaml文件
三种等待方式:https://ceshiren.com/t/topic/29785
2.conftest.py+fixture/hook
https://ceshiren.com/t/topic/28507
3.使用requirements.txt管理包
https://ceshiren.com/t/topic/23828
管理所有第三方python包信息,之后可以一键安装
4.日志封装
日志主要是记录操作日志、报错日志
配置日志默认输出等级、日志格式
注意:配置日志的文件位置,pytest.ini的配置是基于用例所在位置找的日志存放位置
方式1:pytest.ini https://ceshiren.com/t/topic/13105
方式2:logging https://ceshiren.com/t/topic/16036
日志输出:
- 控制台
- 保存在文件中
todo:
- 动态生成日志名 方式1的参考文件里有
- 不同类型日志保存在不同的文件里(error info)
5.pytest.ini配置文件
配置pytest相关属性(pytest运行命令参数、用例书写规则、日志、marker等)
注意:allure报告也可以在此处配置(即为运行命令参数addopts)
https://ceshiren.com/t/topic/23794
6.环境、基础数据配置
项目目录中新建文件夹config,使用yaml文件配置环境、域名、账号等配置?
多环境配置:https://ceshiren.com/t/topic/22281
主要实现技术:读取yaml文件 、yaml文件的配置
需要安装第三方插件pytest-yaml
envs.yaml
default_env: test_env
test_env: http://xx/#/login
dev_env: http://xx/#/login1
until中operate_yaml.py
import yaml
# 读取yaml文件
def get_yamlData(file_path):
with open(file_path,'r') as file:
return yaml.safe_load(file)
# 读取环境变量配置文件,获取basic_path
def get_env():
env_data = get_yamlData(f'..\config\envs.yml')
basic_path = env_data.get(env_data.get('default_env'))
return basic_path
实际应用
from until.operateYaml import get_env
class Login:
_BASE_URL = get_env()
...
7.allure报告
https://ceshiren.com/t/topic/26978
实现:
(1)pytest.ini中可以完成allure第一步的操作:包括生成报告源文件、清理历史源文件(即为运行命令参数addopts)
# 1.生成报告中间文件,并清理历史数据
addopts = -v -s --clean-alluredir --alluredir=../result
(2)生成html报告
# 2.转为html报告
allure generate ../result/ -o ../resport/ --clean
# 3.查看报告
allure open -h 127.0.0.1 -p 8883 ../resport
allure作用:
- 标记测试模块、类、用例(展示在报告中)
- 生成报告
allure中实现点:
- 代码异常/定位异常/用例失败(断言失败)进行截图,可以附到allure报告中
- allure注释性文字写到用例中
8.邮件发送测试报告
9.结合jekins、docker
https://blog.csdn.net/weixin_54696666/article/details/131424397
工具:
问题:
- 自动化测试处理验证码 https://ceshiren.com/t/topic/23564
手机端UI自动化 代码参考
代码简单分析:
与web不同,此处把框架代码封装在base包内,把业务代码封装在page里。
- base里的base_page.py里的类BasePage封装了对元素定位、操作、截图等基础操作;
- wework_app中的类WeWorkAp继承了BasePage类,并封装了对app的启动、重启、停止、进入首页操作;
- page里的所有类都继承了WeWorkApp类