1. pythonUI自动化之组成结构
python+pytest+allure+POM
python:编程语言
pytest:单元测试框架
allure:测试报告
POM:页面对象模型
2. pythonUI自动化之POM测试框架目录
1. base文件夹:基类,用于配置元素操作,如获取元素、输入、点击、等待等函数
2. pages_object文件夹:页面对象类,用于存放每个页面的操作对象,这也是POM框架的核心内容
3. test_cases文件夹:测试用例。每个测试用例应该单独成为一个py文件,并按照逻辑进行组织。可以根据项目需求创建不同的子文件夹来分类管理测试用例。
4. utils文件夹:用于存放工具函数或者公共方法。在编写测试时,可能会使到一些重复性高且与特定页面无关的功能,可以将其提取为工具函数并放入此文件夹中。
5. data文件夹:测试数据存放目录
6. configs文件夹:用于存放配置文件。如果需要修改测试运行参数或者设置全局变量,可以将其保存在配置文件中,然后在测试过程中引用。
7. reports文件夹:用于生成测试报告。当测试完成后,可以将测试结果输出为HTML格式的报告,并保存在此文件夹中。
8. main.py文件:主程序入口点。所有的测试任务从此处开始执行,可以选择指定要运行的测试用例集合或者整个测试模块。
9. requirements.txt文件:记录了项目所需的第三方库及版本号。可以使用pip命令安装所列出的库。
10. .gitignore文件:Git版本控制系统的忽略文件,用于指定哪些文件/文件夹不被添加到版本控制中。
11. README.md文件:项目说明文档,介绍项目名称、目录结构、使用方法等内容。
1. base文件夹:基类,用于配置元素操作,如获取元素、输入、点击、等待等函数
"""
基类
"""
class Base:
def __init__(self, driver):
self.driver = driver
# 打开网址
def open(self, url):
self.driver.get(url)
# 获取元素信息
def locator(self, **data):
"""
data.get('name', 'xpath'): 获取data字典里的name, 如果没有则默认xpath
:param data:
:return:
"""
ele = self.driver.find_element(data.get('name', 'xpath'), data['ele'])
return ele
# 点击
def click(self, **data):
self.locator(**data).click()
# 输入
def input(self, **data):
self.locator(**data).send_keys(data['txt'])
2. pages_object文件夹:页面对象类,用于存放每个页面的操作对象,这也是POM框架的核心内容。自动化是否做的好,全看页面是否维护的好
假设整个系统只有(登录)和(用户)两个模块, 而(用户)模块的核心功能是(新增用户)和(删除用户), 而你想设计两条用户, 一条新增用户, 一条删除用户,那么页面对象你就可以这么设计
接下来就可以设计我们的用例了:
用例1:新增用户
用户2:删除用户
3. test_cases文件夹:测试用例。每个测试用例应该单独成为一个py文件,并按照逻辑进行组织。可以根据项目需求创建不同的子文件夹来分类管理测试用例。
4. configs文件夹:配置文件。可以将浏览器启动配置,数据库启动配置等其他配置都放到这个文件中
假如在以上用例中,我想让浏览器启动时就开启无痕模式,该怎么做?
然后如何导入使用呢?如下
5. main.py文件:主程序入口点。所有的测试任务从此处开始执行,可以选择指定要运行的测试用例集合或者整个测试模块。
这个是所有用例的执行文件,相当于用例执行开关,如何设计呢? 比如这里使用的是pytest
6. utils文件夹:工具文件。在编写测试时,可能会使到一些重复性高且与特定页面无关的功能,可以将其提取为工具函数并放入此文件夹中。
这个相当于一个工具文件, 比如用例有可能用到正则表达式、特殊计算公式、替换等功能时,都可以封装在这个文件中。该文件暂不代码展示
7. reports文件夹:测试报告。当测试完成后,可以将测试结果输出为HTML格式的报告,并保存在此文件夹中。
测试报告文件, 这里使用的是allure报告,对于如何使用安装allure报告, 可以看这篇文章:https://www.cnblogs.com/FBGG/p/15491711.html