UI自动化框架设计

2023-11-04

这个框架的话使用了PO分层思想和单用例设计模式然后使用Python+selenium进行UI自动化框架设计

框架目录的结构:

二、config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备,然后目前的配置文件大都会用yaml,ini,excel,还有.py也就是python文件来进行管理这里用的是ini文件。

三、config包当中的globalconfig文件主要是用来生成项目的路径,测试用例,测试报告的路径
其中调用了ReadConfigIni这个类来读取ini格式的文件。

四、Data.xlsx主要是用来存放项目的url,账号和密码的
通过excel来存放,可以增加数据的稳定性,后面会通过封装读取excel文档的工具类,来对excel文档中的数据进行读取

五、public包中pages包中的BaseTestCase模块主要是用来放基类的,当中并且通过set_driver传入一个driver对象来进行设置driver对象,这其实就是单例设计模式的体现然后通过get_driver来拿driver,所以只要继承BaseTestCase这个基类,就可以拿到这个类当中的一切类方法。然后定位页面元素用find_element这个类方法来进行封装,可以使得传入的参数是一个元组,然后这里其实用到了Java当中的page object设计模式,也就是所谓的PO设计模式,使得页面中的每一个控件都变成了对象的属性。

 

六、public包中pages包中的login模块主要封装了项目的登录,首先创建一个driver对象,然后通过调用set_driver方法把driver传给基类,这个地方是最为关键的地方,所以基类中的driver,其实就是这个地方传进去的,然后把driver对象赋值变成了BaseTestCase这个基类的类变量也就是类的属性,所以后续基类当中的类方法其实都是使用的这个login模块中创建的这个driver对象,这样的目的就是可以保证我们的项目从头到尾都是使用的同一个driver对象,同一个driver指的就是打开的为同一个chrome浏览器。

七、这里封装了一个读取excel的工具类,因为后续我们的项目的账号和密码都存在excel文档中去了,所以需要封装一个读取excel的工具类,来读取账号和密码,其中用到了xlrd模块来读取。

八、Login_data模块中主要是读取excel然后返回url,账号,密码
get_password方法因为生成的数据是浮点数,所以用了int函数进行转换。

九、封装了一个发送邮件的工具类,值得注意的是这里用的是163的smtp服务器这个代码是不适用QQ服务器的,而且pwd是163邮箱的授权码,不是密码这个地方需要注意。

十、PageElement这个模块很为关键,这个PageElement类当中封装了所有页面的网页元素
这里其实就是用到了让一个项目中的所有元素定位和用例流程和最终的用例进行分层处理
这个设计有点像RF框架当中的三层封装设计模式:元素层,流程层和案例层,但是这样处理
有一个问题就是代码量会很多。但是优势也是非常明显的
优势如下:
1.让元素定位,流程,案例进行了分离
2.前端代码关于元素定位有改动可以随时进行处理,修改非常方便
3.让代码间的耦合性降低
4.降低代码的维护成本
5.代码的复用性高
6.采用标准的page object页面对象设计模式,符合现在主流ui自动化框架的标准搭配

十一、这里封装了一个工具类,主要是用来读取ini文件的
需要先在dos窗口用pip install configparser来安装configparser模块

十二、run模块中主要是用来加载和运行所有的用例,并且生成测试报告和发送测试报告。

十三、编写测试用例,后续有当前模块的测试用例就可以更新在当前这个模块中
然后进行断言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UI自动化框架设计 的相关文章

  • 多线程设计模式-保护性暂停模式

    利用wait和notify方法实现 有这么一个场景 我们有两个线程 其中一个线程需要等待获取另外一个线程的执行结果 之气那我们是使用join方法可以实现 现在我们不用jon来实现 package com dongmu test 多线程设计宝
  • 上半年亏损之下,卫龙第三次冲刺港股IPO

    据港交所文件显示 今年6月27日卫龙美味通过港交所上市聆听 11月24日 卫龙更新了聆听后资料集 若此次上市成功 卫龙将成为港股乃至国内辣条第一股 此前 卫龙已经两度申请了赴港IPO 但都功败垂成 对于卫龙前两次未能成功上市的原因外界众说纷

随机推荐

  • 自动控制原理实验四 系统频率特性测量

    实验源码已经上传CSDN了 需要的可直接下载 链接 https download csdn net download weixin 53129688 87694703 实验内容 1 模拟电路图及系统结构图分别如图4 2和图4 3 图4 2
  • 第十四届蓝桥杯模拟赛(第三期)

    目录 1 最小数 2 Excel 列名 3 年月日的和 4 取数 5 连通分块 6 星期天数 7 信号塔 8 清理水草 9 滑行 10 序列最小值 1 最小数 问题描述 请找到一个大于 2022 的最小数 这个数转换成十六进制之后 所有的数
  • ITK(Insight Tool Kit) 医疗影像数据后处理软件模块使用和算法01

    最近在研究3D 2D比如 CT和X ray透视 的配准方法 其中很重要的一个大算法就是做DRR digitally reconstruction radiography 简单的说就是用CT数据实现X ray的效果 进而和术中X ray的片子
  • 再次飙升GitHub榜首!这份“保姆级”的SpringBoot笔记,不服不行

    Spring Boot 延续了 Spring 框架的核心思想 IOC 和 AOP 简化了应用的开发和部署 通过少量的代码就能创建一个独立的 产品级别的 Spring 应用 在继承了Spring 一切优点的基础上 其最大的特色就是简化了Spr
  • canvas实战之酷炫背景动画(二)

    系列文章 canvas实战之酷炫背景动画 一 canvas实战之酷炫背景动画 二 canvas实战之酷炫背景动画 三 canvas实战之酷炫背景动画 四 canvas实战之酷炫背景动画 五 canvas实战之酷炫背景动画 六 canvas实
  • 用python实现调用电脑摄像头识别人的手势

    要在 Python 中调用电脑摄像头并识别人的手势 你需要使用一些图像处理库 例如 OpenCV 下面是一个示例代码 它使用 OpenCV 调用电脑摄像头并显示视频流 import cv2 调用摄像头 cap cv2 VideoCaptur
  • Linux网络编程:网络基础

    文章目录 一 协议 二 网络应用设计模式 BS模式和CS模式 三 网络分层模型 OSI七层 TCP IP四层 四 通信过程 五 协议格式 1 数据包封装 2 以太网帧格式和ARP数据报格式 3 IP段格式 4 UDP数据报格式 5 TCP数
  • iOS OpenGL ES2.0教程 Lesson03 旋转 投影矩阵,相机矩阵,世界矩阵生效

    CC NODE DRAW SETUP CCGLProgram setUniformsForBuiltins ccMacros h 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http
  • VMWare 网络连接激活失败(有线连接)

    解决方案 找到管理 gt 虚拟机设置 然后选择 然后选择自己主机网络连接所用的网卡 如果不知道自己网卡的名称 打开网络适配器 找到主机连接所用的网口
  • [2023.8.19]22. Statistical Profiling Extension Support

    Cortex A715核心在Arm v8 2 A架构中实现了可选的统计分析扩展 SPE SPE提供了对执行指令性能特征的统计视图 软件开发者可以利用这些信息来优化代码以获得更好的性能 Cortex A715核心通过对微操作进行分析来最小化支
  • pip安装第三方模块报错: You are using pip version 19.0.3, however version 19.1.1 is available. You should cons

    TOC升级pip命令 使用命令 pip list 1 查看安装的第三方库时 会在列表结尾说 You are using pip version 19 0 3 however version 19 1 1 is available You s
  • Permission denied解决办法

    Permission denied 权限被拒绝 没有访问文件的权限 查询对文件的权限 ls l 文件名称 r为可读权限 w为可写权限 x为可执行权限 授权文件rwx 可读可写可执行权限 chmod 777 文件名称 如果目标是文件夹 chm
  • python实现svm

    Python实现支持向量机 SVM 转载 http blog csdn net zouxy09 机器学习算法与python实践这个系列主要是参考 机器学习实战 这本书 因为自己想学习Python 然后也想对一些机器学习算法加深下了解 所以就
  • JSP页面中,JavaScript可以使用EL表达式吗?

    JSP页面中 JavaScript可以使用EL表达式吗 答案是可以的 而且用途很大 比如我们做分页时 把当前的页 第几页 pageIndex保存在session中 把最后一页 尾页 endPage页保存在session中 如果是首页 当点击
  • 全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等

    文章目录 1 文章引言 2 简述 npmrc 3 配置 npmrc 3 1 npmrc配置文件的优先级 3 2 npmrc设置的命令行 3 3 如何设置 npmrc 4 配置发布组件 5 npm常用命令 6 重要备注 6 1 yarn 6
  • MPP架构

    MPP Massively Parallel Processing 大规模并行处理 面对海量数据和计算时 采用大事化小的思路 对数据进行分割 数据分割后单独存储 数据处理消耗的资源也是相互隔开的 对于MPP数据库来讲 整个数据库由多个完全独
  • 2023计算机毕业设计SSM最新选题之java二手交易平台2ud44

    2023计算机毕业设计SSM最新选题之java二手交易平台2ud44 毕业设计其实不难 主要毕业的时候任务太紧了 所以大家都非常忙没有时间去做 毕业设计还是早做准备比较好 多花点时间也可以做出来的 建议还是自己动手去做 比如先选一个题 这样
  • 目前开源的智能家居服务器,Home Assistant(以下简称HA)是个开源的智能家

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Home Assistant 以下简称HA 是个开源的智能家居平台 开源意味着可以随便拿去用 而且是安全的 可以把家中的智能家居设备整合到HA中 它能够接入的设备非常的多 小米 博联 易微联 特
  • php 原生发邮件,原生php phpmailer 发送邮件 email

    setmail 查询最新可用的邮件 接受者 查询最新可用模板内容 查询最新可用企业邮箱 发送者 functionsetmail data username 24066 qq com data password ntpcbibe data f
  • UI自动化框架设计

    这个框架的话使用了PO分层思想和单用例设计模式然后使用Python selenium进行UI自动化框架设计 框架目录的结构 二 config包当中的config ini文件主要是用来存项目的绝对路径 是为了后续跑用例和生成测试报告做准备 然