分享个自己最近在做的自动化测试框架架构图。 
数据的测试,入口一般定时任务。可添加参数选择执行任务的范围,也可以选择默认的执行范围。验证测试的为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 自动化测试框架的更多相关文章

  1. 避免重复造轮子的UI自动化测试框架开发

    一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

  2. [转]Android Studio 里搭建自动化测试框架Robotium

    Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...

  3. 基于Ruby的Watir-WebDriver自动化测试框架

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  4. Windows下部署Appium教程(Android App自动化测试框架搭建)

    摘要: 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios.android.firefox os: 4,a ...

  5. IntelliJ IDEA 自动化工具安装并添加自动化测试框架

    IntelliJ IDEA是一个用于开发人员开发和测试人员自动化测试的测试工具,类似于eclipse. 优点:插件多自身可以携带,自身携带cucumber自动化测试框架,类似于junit一样 缺点:r ...

  6. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  7. UiAutomator自动化测试框架介绍

    UiAutomator自动化测试框架介绍 环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2    ...

  8. UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)

    其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...

  9. Robotium自动化测试框架实用教程(图)

    一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...

随机推荐

  1. HDU 2086 A1 = ?

    http://acm.hdu.edu.cn/showproblem.php?pid=2086 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci ( ...

  2. git add -A 和 git add . 的区别

    git add -A和 git add .   git add -u在功能上看似很相近,但还是存在一点差别 git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文 ...

  3. windows多线程(六) 互斥量Mutex与关键段CriticalSection比较

    一.关键段CS 和 互斥量Mutex 的相同点:都有线程拥有权 关键段和互斥量都有线程拥有权,即可以被一个线程拥有.在 前面讲关键段CS的文章中有说到,关键段结构体的第四个参数保存着拥有该关键段的线程 ...

  4. windows多线程(四) 关键段 CriticalSection

    一.问题回顾 我们上一篇文章最后的程序的输出 g_Count 的值不是每次都正确,原因是没有对全局资源 g_Count 进行互斥访问(就是同一时刻只能由一个线程访问),接下来我们就来说一下使用关键段来 ...

  5. es6 let关键字

    1.let关键字 var arr = [ ]; for(var i=0; i<10; i++){ arr [i] = function(){ alert(i) } } arr [8](); // ...

  6. poj 2942 Knights of the Round Table(点双连通分量+二分图判定)

    题目链接:http://poj.org/problem?id=2942 题意:n个骑士要举行圆桌会议,但是有些骑士相互仇视,必须满足以下两个条件才能举行: (1)任何两个互相仇视的骑士不能相邻,每个骑 ...

  7. 【uoj#143】[UER #5]万圣节的数列 构造

    题目描述 给出一个的数列,将其重新排列,使得其等差子序列的数目最小.输出一种可能的排列后的数列. 题解 构造 那天和 EdwardFrog 讨论 bzoj2124 的构造时突然有的灵感,最后发现就是这 ...

  8. jdbc的封装(使用参数文件)

    借鉴原CSDN作者yanzi1225627的一篇:http://blog.csdn.net/yanzi1225627/article/details/26950615 作者东西写的很好,自己用的时候进 ...

  9. Just Another Problem UVA - 11490(枚举)

    题意: 你有s个士兵,并打算把他们排成一个r行c列,但有两个"洞"的矩形方队,以迷惑敌人(从远处看,敌人可能误以为一共有r*c个士兵).洞是两个大小相同的正方形,为了隐蔽性更强,方 ...

  10. Java的顺序栈和链式栈

    栈的定义 栈是限制在表的一段进行插入和删除的运算的线性表,通常能够将插入.删除的一端为栈顶,例外一端称为栈底,当表中没有任何元素的时候称为空栈. 通常删除(又称"退栈")叫做弹出p ...