自动化测试框架总结

2023-10-27

自动化测试框架流程图:

自动化测试框架模块:

  1. 配置文件读取模块
  2. 日志模块
  3. 测试数据读取模块
  4. 测试执行模块
  5. 测试结果更新模块
  6. 异常处理模块
  7. 屏幕截图模块

自动化框架模块功能说明:

  1. 配置文件读取模块

模块的主要功能是把测试项目的公共配置读取到脚本里。

  1. 日志模块

模块的主要功能是记录测试的详细步骤。

  1. 测试数据读取模块

模块主要包括的功能是测试用例数据的读取、测试步骤数据的读取、测试输入数据的读取、测试期望结果的数据。

  1. 测试执行模块

模块的主要功能是执行测试用例的主要步骤,包括页面控件元素的识别以及操作、 测试数据的输入、验证测试的结果。

  1. 测试结果更新模块

模块的主要功能是更新测试的结果。

  1. 异常处理模块

模块的主要功能是处理脚本的相应异常信息,框架的关键异常在测试数据读取以及测试执行阶段产生。

  1. 屏幕截图模块

模块的主要功能是当用例执行失败或者异常的时候截取必要的屏幕截图。

自动化模块接口使用例子:

  1. 配置文件读取模块接口

## 脚本里引入配置模块

from fs_webui_test.fs_webui_test_fun import *

## 脚本里实例化配置对象

qa = InitTest()

cf = qa.initConfigFile(config_file)

config_file: 配置文件的名称

## 脚本里面使用配置模块

ambari_user = cf['ambari_user']

  1. 日志模块

## 脚本里面引入log模块

from basics.logger import *

## 脚本里面实例化log对象

plog = AutoLogger(log_file,  log_level)

log_file: log的名称

log_level可以是: DEBUG, INFO, WARNING, ERROR, CRITICAL

## 脚本使用log函数

plog.log("INFO", "Your info log.")

plog.log("DEBUG ", "Your debug log.")

  1. 屏幕截图模块

## 脚本里引入屏幕截图模块

from fs_webui_test.fs_webui_test_fun import *

## 脚本里实例化屏幕截图对象

qa = InitTest()

## 脚本里面使用屏幕截图模块

qa.takeScreenshot(browser, screenshot_name + ".png")

screenshot_name: 截图的名称

需要研发的模块接口定义:

  1. 测试数据读取模块

模块需要以类的形式定义在函数库fs_webui_test_fun.py里面,类里面需要有异常处理的代码,这里的异常包括代码被动的异常以及脚本主动抛出的异常。

具体的使用方式如下:

## 脚本里引入函数库

from fs_webui_test.fs_webui_test_fun import *

## 脚本里实例化数据驱动对象

dd = DataDriver(“file_dir”, “tc_file.xlsx”)

file_dir: 项目测试用例文件tc_file.xlsx的存放路径。

## 脚本里面使用数据驱动读取用例列表

tc_list = dd.getTCLists()

## 脚本里面使用数据驱动读取测试数据列表

tc_steps = dd.getTCSteps()

  1. 测试结果更新模块

测试结果更新模块与数据驱动模块可以定义到同一个类里面,异常处理是一样的。

具体的使用方式如下:

from fs_webui_test.fs_webui_test_fun import *

## 脚本里实例化数据驱动对象

dd = DataDriver(“file_dir”, “tc_file.xlsx”)

file_dir: 项目测试用例文件tc_file.xlsx的存放路径。

## 脚本调用报表模块

 dd.createReport(tc_result)

说明: 调用的结果应该创建报表文件tc_file_result.xlsx , 传入参数tc_result的格式要求:列表变量, 内容类似 [[001, tc1, pass],  [003,tc3, fail] ……]

异常处理

脚本的异常应该分成两种类型,代码异常以及用户定义的异常。 函数库里面的异常应该可以让上层代码捕获,并能够有清晰的错误描述。如果代码返回的异常描述不清晰,需要在代码里面做相应的处理,重新主动抛出。

    框架主流程的代码需要捕获所有模块的异常,并能做出相应的处理。 测试过程的验证以及测试结果的判断也是以异常的形式处理。

测试执行模块

测试执行属于框架的主流程,包括了测试数据的处理,页面元素的识别,测试步骤的执行,测试结果的验证,测试结果更新以及异常的处理。具体的逻辑请参考前面的流程图。

 

 

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

自动化测试框架总结 的相关文章

  • JAVA单元测试框架-13-TestNG中的Listener监听

    使用TestNG中的Listener完成监听测试 通过实现ITestListener里面的方法完成测试过程监听 public class TestListenner implements ITestListener Override pub
  • 【软件测试】linux命令-引用符号(反斜杠\、单引号‘‘、双引号““)

    引用符号在解析器中保护特殊元字符和参数扩展 其使用方法有3种 反斜杠 单引号 双引号 单引号和双引号必须匹配使用 均可在解析器中保护特殊元字符和通配符 但是单引号 硬转义 主要用于信息的原样输出 防止任何变量的扩展 双引号 软转义 允许变量
  • 当服务器无法访问,如何快速定位问题点

    工作和生活中 我们难免会遇到这样的问题 这种情况出现时 如何快速定位排查呢 一 了解什么是域名 VS IP 1 什么是域名 www baidu com 2 为什么用域名通信 不直接用IP通信 ip地址不好记忆 如 124 56 78 333
  • Firefox 或将强制启用 HTTPS 链接

    Mozilla 在最新上线的 Firefox 76 Nightly 版本中引入可选的 HTTPS only 模式 该模式仅允许连接到 HTTPS 站点 如果一切进行顺利的话 Firefox 接下来可能会在稳定版中面向所有用户推出该项功能 H
  • 性能测试 —— Tomcat监控与调优:status页监控

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器 Tomcat是Apache 软件基金会 Apache Software Foundation Jakarta 项目中的一个核心项目 由Apache Sun 和其他一些公司及个人共
  • 数据接口测试工具 Postman 介绍!

    此文介绍好用的数据接口测试工具 Postman 能帮助您方便 快速 统一地管理项目中使用以及测试的数据接口 1 Postman 简介 Postman 一款非常流行的 API 调试工具 其实 开发人员用的更多 因为测试人员做接口测试会有更多选
  • 【涨薪技术】深入接口测试之Mock技术

    01 为什么要用Mock 服务端与客户端约定了接口 但服务端还没有完成开发时 客户端一般由如下处理方式 1 在程序中写模拟数据 程序中增加垃圾代码 后期还要删除 可能对代码造成影响 模拟异步请求不方便 服务端接口开发完成后 需要重新书写网络
  • OBC、DCDC自动化测试解决方案!

    OBC 车载充电机 和DCDC 直流 直流变换器 是电动汽车的核心部件 DCDC和OBC的功能质量对于整车的性能和安全性至关重要 在OBC和DCDC 以及整车开发测试过程中 需要对OBC和DCDC进行功能和性能方面进行全面的测试 针对OBC
  • Airtest进阶使用篇!提高脚本稳定性 + 批量运行脚本!

    一 背景 今天彭于晏为大家分享Airtest进阶使用篇 主要包含两块的内容 提高脚本稳定性 批量运行脚本生成测试报告 二 提高脚本稳定性 1 添加全局配置 全局设置 ST FIND TIMEOUT 10 设置隐式等待时长 默认识别图片时间是
  • 测试提交的bug开发不认可怎么办?

    当测试提交的Bug开发不认可时 可以采取以下步骤来解决问题 1 澄清沟通 首先 与开发人员进行详细的沟通 确保对Bug的描述清晰准确 并提供相关的复现步骤 截图或日志等支持材料 确保开发人员对Bug的具体情况有充分的了解 2 提供更多信息
  • Python自动化测试之线上流量回放:分析、存储与本地化支持!

    在自动化测试中 线上流量回放是一项关键技术 它可以模拟真实用户请求并重现线上场景 验证系统的性能和稳定性 本文将介绍Python自动化测试中的线上流量回放技术 并提供实战代码 帮助你了解日志分割解析 存储至本地MySQL数据库 以及本地化存
  • 新手上路:盘点「性能测试」必须掌握的技术点

    前段时间 有一些小伙伴提出希望我们推送点性能测试的技术干货 所以 小编今天通过上网查资料 结合项目实操过程中的一些问题 总结了一些关于性能测试的内容 希望是大家想要了解的内容哈 1 性能测试的目的 首先 先来明确一个问题 我们为什么要给产品
  • 记一次性能优化,单台4核8G机器支撑5万QPS!

    前言 这篇文章的主题是记录一次Python程序的性能优化 在优化的过程中遇到的问题 以及如何去解决的 为大家提供一个优化的思路 首先要声明的一点是 我的方式不是唯一的 大家在性能优化之路上遇到的问题都绝对不止一个解决方案 如何优化 首先大家
  • 可观测性是什么?新手入门指南!

    如果您之前对可观测性重要性 益处 以及组成不甚了解 本文是一个合适的指南手册 什么是可观测性 可观测性被定义为根据系统产生的输出数据 如日志 指标和链路追踪 来衡量当前系统运行状态的能力 可观测性目前被广泛的用于提升分布式 IT 系统的稳定
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个
  • Python接口自动化测试:断言封装详解

    前言 在进行API接口测试时 断言起着至关重要的作用 断言是用于验证预期结果与实际结果是否一致的过程 在Python中 我们可以利用一些库来实现断言功能 1 安装必要的库 在Python中 我们主要会使用两个库 requests 和 jso
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个
  • Python接口自动化测试:断言封装详解

    前言 在进行API接口测试时 断言起着至关重要的作用 断言是用于验证预期结果与实际结果是否一致的过程 在Python中 我们可以利用一些库来实现断言功能 1 安装必要的库 在Python中 我们主要会使用两个库 requests 和 jso
  • 如何使用 Python+selenium 进行 web 自动化测试?

    Selenium是一个自动化测试工具 它可以模拟用户在浏览器中的操作 比如点击 输入 选择等等 它支持多种浏览器 包括Chrome Firefox Safari等等 并且可以在多个平台上运行 安装和配置Selenium 在使用Seleniu
  • 最佳利用Mock提升测试效率的7个技巧!

    再聊这个问题之前 我们先了解一下公司技术架构的演变过程 这样我们才能真正体会到我们为什么要使用 Mock功能 单体应用 在早期 大部分公司的应用技术栈主要可以分为两大类 LAMP Linux Apache MySQL PHP 和 MVC S

随机推荐

  • pytorch实现style transfer

    说是实现 其实并不是我自己实现的 亮出代码 https github com yunjey pytorch tutorial tree master tutorials 03 advanced neural style transfer c
  • 【计算机网络】实验报告二:Wireshark实验

    Wireshark实验 实验准备 1 数据链路层 1 实作一 熟悉 Ethernet 帧结构 2 实作二 了解子网内 外通信时的 MAC 地址 3 实作三 掌握 ARP 解析过程 2 网络层 1 实作一 熟悉 IP 包结构 2 实作二 IP
  • 尚硅谷-宋红康-MySQL高级性能篇

    尚硅谷 宋红康 MySQL高级性能篇 第1章 Linux下MySQL的安装与使用 1 安装前说明 1 1 Linux系统及工具准备 二级目录 三级目录 第1章 Linux下MySQL的安装与使用 1 安装前说明 1 1 Linux系统及工具
  • 华为Atlas开发环境(ATC环境)搭建

    此博文主要用于指导在非昇腾AI设备上安装开发环境 用于代码开发及ATC模型转换等功能 以下所有操作建议在root用户下进行 可以省去很多麻烦 1 准备软件包 若开发环境为x86 64架构 而运行环境为aarch64架构 则开发环境上需要同时
  • cv2.error: Unknown C++ exception from OpenCV code

    超链接 深度学习工作常用方法汇总 矩阵维度变化 图片 视频等操作 包含 torch numpy opencv等 原因 ndarray经过切片后 会出现内存不连续的情况 当不连续时 保存就会报错 解决办法 frame np ascontigu
  • 在子工程中禁用的父工程的 maven 插件

    以 mybatis generator maven plugin 插件为例 在父工程中添加了 mybatis generator maven plugin 插件 想要在子工程禁用 则在对应子工程 pom 中添加 如下内容
  • App数据抓取(抓包工具使用)

    文章目录 fiddler使用 移动端 mitmproxy mitmdump 基础实战 使用Python抓取数据 小结 fiddler使用 基础篇介绍了如何设置fiddler做代理 这里继续介绍使用方法 在file中可以选择开始 停止抓包 可
  • 在安装project2010 64位时提示 “无法安装64位office,因为已有32位版本”解决方法...

    1 点击电脑左下角开始按钮 选择运行 或者window R快捷键 输入命名 regedit 2 弹出注册表编辑器窗口 选择HKEY CLASSES ROOT 打开子选项 3 然后找到Installer文件夹 展开文件列表 文件太大的话直接在
  • 87键键盘insert键使用方法

    87键党一枚 对于计算机工作者而言 104键键盘太鸡肋了 有很多键基本用不到 布局比较反人类 对于想要盲打全键的程序员 文字工作者而言 要按下控制键 得转动手腕甚至转动手肘 严重降低效率 87键实现了所有常用键的布局 可以盲打所有按键 对于
  • 马上看懂各种内聚类型(逻辑内聚、过程内聚、顺序内聚)

    各种内聚模式 内聚概念 内聚其实是一个模块内部各成分之间相关联程度的度量 用来表示说 你这个模块里面各个元素之间关系好不好 是不是每天勾肩搭背 还是冷眼相对或者是偶尔打个招呼 内聚类型 这里用 元素 来统一表达一个模块中各种操作 部分等说法
  • 定时任务-quartz的使用,实现可页面化管理

    定时任务 quartz的使用 实现可页面化管理 使用spring quartz实现定时任务的页面化管理 主要特点 1 时间表达式等信息配置在数据库中 从而实现页面化管理 2 可以手动执行或者停止单个任务 也可以使一个任务加入或者移出自动运行
  • unity 渲染流水线

    渲染流水线 主要分为应用阶段 几何阶段 光栅化阶段 应用阶段 这一阶段最重要的输出是渲染所需的几何信息 即渲染图元 几何阶段 重要任务就是把顶点坐标变换到屏幕空间 通过对输入的渲染图元进行多次处理后 输出屏幕空间的二维顶点坐标 每个顶点对应
  • 《大话数据结构》第六章树

    1 定义 之前我们一直在谈的是一对一的线性结构 可现实中 还有很多一对多的情况需要处理 所以我们需要研究这种一对多的数据结构 树 考虑它的各种特性 来解决我们在编程中碰到的相关问题 树 Tree 是n n 0 个结点的有限集 n 0时称为空
  • R语言中的函数18:readxl::read_excel(), read_xls(),read_xlsx()

    文章目录 read excel read xls 和read xlsx 函数介绍 实例 实例1利用read xls读取文件 实例2指定读取数据的范围range 实例3读取有缺失值的数据 实例4read xls和read xlsx需要对应的文
  • vue nextTick深入理解-vue性能优化、DOM更新时机、事件循环机制

    一 定义 nextTick 事件循环 nextTick的由来 由于VUE的数据驱动视图更新 是异步的 即修改数据的当下 视图不会立刻更新 而是等同一事件循环中的所有数据变化完成之后 再统一进行视图更新 nextTick的触发时机 在同一事件
  • 什么?计算机居然不能精确计算0.1+0.2?

    小云今年大三在一家互联网公司实习 今天下班回到寝室闷闷不乐 小帅见状关心到 怎么了 碰到什么不开心的事了吗 小云叹了口气 今天我写的程序中涉及到小数计算 出了个bug 被测试的人笑了 说我居然0 1 02都不会算 小帅忍不住笑了 0 1 0
  • Java之JVM方法区、永久代、元空间、常量池简介说明

    转自 Java之JVM方法区 永久代 元空间 常量池简介说明 下文笔者讲述jvm中方法区 永久代 元空间 常量池的简介说明 如下所示 JVM内存模型简介 jvm堆是所有线程共享的 主要用来存储对象 堆 年轻代和老年代两块区域 使用NewRa
  • 安时积分法计算soc程序_BMS(电池管理系统)第四课——核心!!!SOC算法开发...

    SOC基本定义 Qmax 电池最大允许充放电容量 可理解为额定容量 SOH Ieff 充放电电流或自放电电流 充电为负 充放电的库伦效率 目前行业算法方案列表如下 其中安时积分 开路电压 人工神经网络 卡尔曼滤波四中方案通用性比较高 重点介
  • 【论文解读-未完成】-A Survey of Transformers-【一篇论文了解整个Transformers王国】

    论文链接 https arxiv org abs 2106 04554 论文时间 202106 论文单位 复旦大学 论文长度 40页 论文目录 A Survey of Transformers Transformers的文献综述 1 INT
  • 自动化测试框架总结

    自动化测试框架流程图 自动化测试框架模块 配置文件读取模块 日志模块 测试数据读取模块 测试执行模块 测试结果更新模块 异常处理模块 屏幕截图模块 自动化框架模块功能说明 配置文件读取模块 模块的主要功能是把测试项目的公共配置读取到脚本里