pythonUI自动化之POM底层框架

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

 

 8. main.py文件:主程序入口点。所有的测试任务从此处开始执行,可以选择指定要运行的测试用例集合或者整个测试模块。

 如果想把allure测试报告结合到该文件来, 请看该文章:https://www.cnblogs.com/FBGG/p/15491711.html

 想查看该文件更多用法,请看该文章:https://www.cnblogs.com/FBGG/p/15670922.html

 

9. requirements.txt文件:记录了项目所需的第三方库及版本号。可以使用pip命令安装所列出的库。

详细用法请看该文章:https://www.cnblogs.com/FBGG/p/16244902.html

 10. .gitignore文件:Git版本控制系统的忽略文件,用于指定哪些文件/文件夹不被添加到版本控制中。有些系统版本文件是不需要版本控制的, 比如vene文件夹,该功能就是将不需要版本控制的文件加入该文件中,这样同步代码get就不会对这些文件进行更新提交

 

11. README.md文件:项目说明文档,介绍项目名称、目录结构、使用方法等内容。

相当于一个项目说明书, 大项目才有可能会用到, 小项目一般用不到

 

posted @ 2024-02-28 21:02  博无止境  阅读(334)  评论(0编辑  收藏  举报