【ui自动化】框架搭建v2.0

整体介绍

对于ui自动化,是把项目的每个页面都封装成类,类实例化后得到页面对象,使用页面对象来调用各自页面的方法,实现对页面进行操作。

用到传统ui框架的pageObjdect的思想(分两层)

  • 页面层:

    1. 读取yml配置文件中的 各个页面的定位器
    2. 实现元素的定位
    3. 页面的基本操作等等(如,对某个元素进行输入或点击)
    4. 会加上显示等待逻辑,增加代码执行的成功率
  • 用例层:

    1. 运用pytest框架的用例编写规则,在一个用例里去调用页面层的方法,完成用例的编写

    对于pageObject这种方式,代码便于维护,好读,好复用,好扩展。

该框架的特点:

  1. 定义浏览器驱动对象时:
	a. 判断是否已经有浏览器对象,`保障了多个测试用例不会打开多个浏览器`。
	b. 通过参数来控制打开的浏览器类型,通过参数来控制是否开启无头模式
  1. 页面层中,定义了页面基类,其他页面类继承它
	a.在init方法中,获取浏览器驱动对象成实例属性(self.driver),通过这个实例属性来定义了一些基本方法,如定位元素、打开页面、输入文本,点击元素等。
	b.读取yml配置文件,页面子类继承时可以直接获取到本页面的定位器,实现了定位器统一管理

代码层级

  1. common目录
    • diver.py —封装浏览器驱动类
    • basePage.py – 公共的页面基类
  2. config目录
    • allelements.yml — 所有页面定位器配置文件
    • config.py – 项目地址,等待时长等配置
  3. datas目录
    • 放用例数据文件
  4. docs目录
    • 放ui自动化相关文档、文件,如chromedriver.exe文件,
    • 框架结构梳理笔记等,业务梳理等
  5. outfiles目录
    • 放report报告文件
    • 图片、视频
    • 日志等
  6. utils目录
    • 放公共方法,
    • 如读取yml文件方法
    • 写日志方法
    • 操作数据库等
  7. pages目录
    • 也就是页面层,一个页面封装一个py文件,封装一个类继承basePage
  8. testCases目录
    • 也就是用例层,一般一个页面一个测试类

你可能感兴趣的:(自动化测试,自动化,前端,运维)