ETL 自动化测试框架
分享个自己最近在做的自动化测试框架架构图。
数据的测试,入口一般定时任务。可添加参数选择执行任务的范围,也可以选择默认的执行范围。验证测试的为etl测试、数据库中的字段校验(通过对应关系、接口或者SQL校验)。
工具类
- 数据库工具类:定义一些数据库相关的操作,主要为操作MySQL。自定义了一些增删改查操作,简化SQL;
- 消息相关工具类:发消息的工具类;
- 定时任务工具类:暂时使用selenium操作web进行,后续将改成Call jar包的形式,因为公司内部定时任务不支持python;
- 发送请求工具类:比较简单,get、post等方法的发请求操作;
- 断言工具类:自定义一些特殊的断言,包括排序、转换数据格式和字符等;
- 其他工具类:发邮件、写日志等;
核心业务框架
- 基础类层:定义了基础类和一些常规配置项,以便test case可以方便集成;做数据准备工作,包括环境检查脚本和数据准备脚本;以及在所有测试结束后,恢复之前被破坏掉的数据;在测试因中断(error或不明原因中断)后,保持问题现场,并保留恢复初始数据的手段;
- 类、对象定义层:将所有用到的接口、库和字段封装成类和对象;自定义一些异常类型;
- 业务关系对应定义层:将验证规则定义到这一层。定义每个对象的验证规则:对象->对象、对象->SQL、对象->接口返回的json;
- test case层:定义测试用例,写入具体的业务逻辑,封装成test case;
- test suite/test case对应定义层:组织需要执行测试的test suite,分别支持组执行、正则匹配执行、全部用例执行;支持从外部的web页进行设置;
- 测试报告生成器:在全部测试执行完成、或者执行中断后,发送测试报告邮件给自定义的接受者。
配置文件
- 多线程执行配置文件:是否使用多线程的执行方式对case执行加速, 并设置线程数;
外围系统/工具
- 环境检查脚本:在执行测试之前,检查环境是否符合测试开始要求;
- 数据准备脚本:备份执行前的数据,以便后续恢复;注入特定/随机的测试数据;
- 数据恢复脚本:将备份数据进行恢复;
- mock平台:模拟接口返回,方便构造一些特定的数据;架构为flask+mongodb;
- test suite配置页面:在外部配置页中,配置需要执行的case;
- 数据库:使用MySQL
ETL 自动化测试框架的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- [转]Android Studio 里搭建自动化测试框架Robotium
Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...
- 基于Ruby的Watir-WebDriver自动化测试框架
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- Windows下部署Appium教程(Android App自动化测试框架搭建)
摘要: 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios.android.firefox os: 4,a ...
- IntelliJ IDEA 自动化工具安装并添加自动化测试框架
IntelliJ IDEA是一个用于开发人员开发和测试人员自动化测试的测试工具,类似于eclipse. 优点:插件多自身可以携带,自身携带cucumber自动化测试框架,类似于junit一样 缺点:r ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)
其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...
- Robotium自动化测试框架实用教程(图)
一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...
随机推荐
- Beta阶段团队项目开发篇章4
例会时间 2016.12.11 例会照片 个人工作 上阶段任务验收 删除robot功能较为简单,基本实现,但是一直Question版块任务量过大,考虑到最近要进行编译课设第二次测试,为该任务再分配一段 ...
- 软工网络15团队作业8——Beta阶段冲刺合集
博客链接集合 Beta阶段敏捷冲刺计划博客 Beta阶段冲刺第一天 Beta阶段冲刺第二天 Beta阶段冲刺第三天 Beta阶段冲刺第四天 Beta阶段冲刺第五天
- Python入门:类与类的继承
类,是一些有共同特征和行为事物的抽象概念的总和. 1. 定义一个类: 我们使用class来定义一个类,和之前说过的定义函数用def类似.在类里面给变量赋值时,专业术语称之为类的属性. 比如拿可口可乐来 ...
- PAT 1054 求平均值
https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336 本题的基本要求非常简单:给定N个实数,计算它 ...
- Robot Framework 教程 (2) - 页面元素定位
上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...
- [Linux] 关于 history 命令的简单使用
1. 如果不想记录当前 会话操作的命令的话 可以使用命令 set +o history 但是这个命令有一个坏处, 他自己被记住了... 2. 还有一个办法 就是 在退出登录之前执行命令 history ...
- 动态生成lookup字段
var i: Integer;begin //ADOQuery已打开 //在数据集打开的情况下新增加一个字段 with Self.ADOQuery1 do begin TDataSe ...
- ctex2.9.2输出中文
安装了ctex2.9.2,打开WinEdt7.0 准备编译论文, 但是中文的地方都是空白,不显示, 到网上找了N个方法,就是引入CJK包,然后加入一下CJK命令来控制中文显示, 结果搞得乱七八糟,还是 ...
- BZOJ3156 防御准备(动态规划+斜率优化)
设f[i]为在i放置守卫塔时1~i的最小花费.那么显然f[i]=min(f[j]+(i-j)*(i-j-1)/2)+a[i]. 显然这是个斜率优化入门题.将不与i.j同时相关的提出,得f[i]=min ...
- 使用URLConnection发送http请求实现简单爬虫(可以配置代理)
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...