自动化测试框架设计思路

PO模式

PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性!

  • V1:不使用任何设计模式和单元测试框架
  • V2:使用caselist管理用例
  • V3:使用方法封装的思想,对代码进行优化
  • V4:采用PO模式的分层思想对代码进行拆分
  • V5:对PO分层之后的代码继续优化
  • V6:PO模式深入封装,把共同操作提取封装到父类中,子类直接调用父类的方法

目录详解

  • case:测试用例,一个py表示一个测试用例
  • common:公共类,里面编写公共使用到的方法。
  • data:存储测试使用到测试数据。
  • download:测试过程中下载的推流版本
  • logs:保存测试过程中用例的运行日志、容器的logcat日志、服务器的dmesg日志以及测试过程中的截图
  • report:测试报告目录,主要用来存放测试报告。
  • source:测试资源
  • utils:工具类,存放通用的工具类方法
  • caselist:待执行的测试用例集,每一行表示一个测试用例
  • run:执行器,执行文件
  • setting:配置文件。

一、用例调度

  • 用例获取:手动将用例名称写入caselist,执行器会默认每一行为一个用例名称,到case文件夹中查找对应的py文件
  • 用例执行:执行器main.py,  运行run函数,执行 python 用例名称.py
  • 用例格式检查:每一个py文件执行前,通过类装饰器对用例格式进行检查,但因为每一个用例都是继承basecase,所以只要参照模版格式都是对的
  • 用例继承BaseCase: python 运行py文件时,会通过if __name__ == "__main__"运行Basecase.py 中的run(),从而依次运行用例的setup(), test_step(), teardown()函数,并在basecase中对三个函数中进行装饰,处理每一个步骤运行异常的情况、用例测试时间以及用例测试结果的逻辑在这里面

二、用例设计

  • 容器环境准备
    • 解压软件版本包
    • 安装kmd驱动
    • 配置文件
    • 容器清理
    • 启动容器
    • 容器检查
  • 推流环境准备
    • 下载推流软件包并解压
      • 方案1:采用python selenium 模块通过模拟点击的方式下载对应版本,缺点是耗时长,依赖第三方库,还需要下载对应的浏览器驱动
      • 方案2:(curl -u用户名:密码 -o 本地文件绝对路径 下载链接)
    • 本地推流,修改配置文件
    • 异地推流
      • 方案1:ssh传输文件到推流机,然后启动socket服务,调用cmd执行推流脚本,只能对指定的推流机操作
      • 方案2:go 语言编写的agent服务,可以灵活配置推流机,异地推流的环境准备业务逻辑在推流机测操作,简化了用例步骤
    • 本地推流/异地传送推流文件,并推流
  • 云游戏操作
    • 多线程运行游戏
    • 根据全局变量,启动脚本获取关键性能数据
    • 收集容器logcat日志和服务器dmesg日志
  • 预期结果检查
    • 推流状态检查
    • 游戏运行状态检查
    • 性能数据检查
    • 日志关键字检查
  • 环境清理
    • 服务器容器环境清理
    • 推流环境清理

三、结果呈现

     载入前端HTML模版

  • 记录版本信息
  • 记录测试时间
  • 记录测试用例数,测试用时,用例pass数,失败数
  • 记录每一条用例的关键信息,失败的用例记录失败原因
  • 保存用例的log下载链接

四、日志处理

  • 用例的关键步骤的日志采用print打印,显示在终端
  • 用例中涉及多路容器运行的,容器的运行日志用logging日志,不显示在终端,但保存在用例logs文件中
  • 单个用例调试运行时,关键步骤打印和容器日志打印都显示在终端,方便debug调试

猜你喜欢

转载自blog.csdn.net/xch622114/article/details/134558214