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,能够对各 ...
随机推荐
- TP 等框架在配置虚拟主机伪静态注意事项
在配置虚拟主机的伪静态 .htaccess 文件时需要注意 ? 符号的添加与否处理 例如TP 框架来讲 无 ? 符号,在有的虚拟主机中必须这样配置,否则无法解析(试了多个公司的虚拟主机只要加了?符号就 ...
- PHP 配置默认SSL CA证书
1.从CURL 官网下载CA 证书(当然也可以选择自己创建SSL CA证书,详情参考 https://blog.csdn.net/scuyxi/article/details/54898870 ,或自 ...
- ACM数论之旅14---抽屉原理,鸽巢原理,球盒原理(叫法不一又有什么关系呢╮(╯▽╰)╭)
这章没有什么算法可言,单纯的你懂了原理后会不会运用(反正我基本没怎么用过 ̄ 3 ̄) 有366人,那么至少有两人同一天出生(好孩子就不要在意闰年啦( ̄▽ ̄")) 有13人,那么至少有两人同一月 ...
- MySQL复合主键下ON DUPLICATE KEY UPDATE语句失效问题
问题的起因,假设有一张表,里面保存了交易订单,每张订单有唯一的ID,有最后更新时间,还有数据,详情如下: 1 2 3 4 5 6 7 +-------+----------+------+-----+ ...
- 2018 焦作icpc现场赛总结
Day 0 没有直达焦作的飞机,所以选择了先到新郑机场,再转乘城际列车.城际列车猜是专门给学生开通的吧,每天只有来和回一共两趟(所以机票选择的余地也不多).买的时候只有无座票了,本来以为会一直站着,但 ...
- 【About Me】 — 有关于我的 —
HNSDFZ信息组一直非常蒻的一只蒟蒻,正在朝着大佬与正解的方向不懈努力中. 目前还是一只高一的萌新,下个学期进高二就可以升级当学姐啦……٩(๑>◡<๑)۶ 呜呜呜已经高二啦!现在高二了 ...
- 一次lvs迁移记录
需求:从117.119.33.99迁移到122.14.206.125,lvs为dr模式,系统版本为debian7 1.安装lvs和keepalived # aptitude install -y ip ...
- Java的容器类
程序总是根据运行时才知道的某些条件去创建新对象.需要在任意时刻和任意位置创建任意数量的对象. 如果你想保存一组基本数据类型数据,建议使用数组,但是数组有固定的尺寸. 一般情况下,你在写程序时并不知道将 ...
- Android中的Surface, SurfaceHolder, SurfaceHolder.Callback, SurfaceView
传入一个surface,然后让openGL在surface上画图 window->view hierachy(DecorView是tree的root)->ViewRoot->Surf ...
- Android Studio导入ApiDemos
安卓开发入门篇(一):Android Studio导入ApiDemoshttp://blog.csdn.net/dreamer2020/article/details/52316895 https:/ ...