首页 > 编程语言 >pythonUI自动化之POM底层框架

pythonUI自动化之POM底层框架

时间:2024-02-28 21:16:13浏览次数:19  
标签:pythonUI self 文件夹 测试用例 页面 data 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文件,并按照逻辑进行组织。可以根据项目需求创建不同的子文件夹来分类管理测试用例。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:pythonUI,self,文件夹,测试用例,页面,data,POM,底层
From: https://www.cnblogs.com/FBGG/p/18041688

相关文章

  • 关于pom.xml各种起步依赖
     <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/P......
  • pom.xml详解
    pom.xml是Maven项目的核心配置文件,用于描述项目的基本信息、依赖关系、构建配置等。下面是对pom.xml文件中常见元素的详解:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat......
  • bitmap 位图 底层原理标记的字符串放在哪
    在Redis中,位图(bitmap)是通过字符串(string)类型来实现的,具体来说,位图是存储在Redis字符串中的二进制位数据。Redis字符串一般采用动态字符串实现,最大长度可以达到512MB。对于位图来说,每个二进制位代表一个状态或标记,可以表示非常多的状态信息,同时占用的存储空间很小。当使用......
  • 计算机底层知识的“第一课”
    为什么你需要学习计算机组成原理?计算机底层知识的“第一课”其实在看完各个大学的计算机课程设计之后。,你会发现,它们都有差不多十来门核心课程。其中,“计算机组成原理”是入门和底层层面的第一课。虽然计算机系的学生毕业后大多从事软件开发工作,但计算机是由硬件设备如CPU、内......
  • Oracle递归授权view底层依赖表查询权限存储过程
    createorreplaceproceduresys.grant_view_base_table_access(p_accessownerVARCHAR2,p_vownerVARCHAR2,p_vnameVARCHAR2)--RETURNnumberasv_accessownerVARCHAR2(200):=trim(upper(p_accessowner));v_ownerVARCHAR2(200):=trim(upper(p_vowner));v_nameVARCHAR......
  • Java版Flink(十二)底层函数 API(process function)
    一、概述之前的转化算子是无法访问事件的时间戳信息和水位线watermark,但是,在某些情况下,显得很重要。Flink提供了DataStreamAPI的Low-Level转化算子。比如说可以访问事件时间戳、watermark、以及注册定时器,还可以输出一些特定的事件,比如超时事件等。ProcessFunction用......
  • maven 项目 pom中打包节点设置
    一、普通maven项目打包方式1.1未将依赖打入jar只包含pom<build><plugins><plugin><!--只打包程序本身不打包依赖--><groupId>org.apache.maven.plugins</groupId><artifactId>maven......
  • Qt QQueue 详解:从底层原理到高级用法
    引言:QQueue的重要性与简介在现代软件开发中,数据结构和算法扮演着至关重要的角色。它们为程序员提供了处理各种不同场景下数据的有效方法。QQueue(队列)是一种常见且实用的数据结构,它在许多应用中都发挥着关键作用。本文将简要介绍QQueue的重要性和简介。队列(Queue)是一种遵......
  • 正则表达式底层实现
    1、不考虑分组代码示例publicstaticvoidmain(Stringargs[]){Stringcontent="2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司MacOSX的工业标准的支持。"+"2001年9月24日,J2EE1.3发布。2002年2月26日,J2SE1.4发布。自此Java的计算能......
  • `pandas.ExcelFile.book` 是一个属性,它存储了底层 Excel 读取库(如 xlrd 或 openpyxl)创
    有点像excelwriter?`pandas.ExcelFile.book`是一个属性,它存储了底层Excel读取库(如xlrd或openpyxl)创建的workbook对象¹。你可以通过这个属性来访问Excel文件的更多详细信息,比如工作表的名字、单元格的格式等等。下面是一个如何使用`pandas.ExcelFile.book`的例子³:``......