什么是自动化测试框架

自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式、平台执行脚本,良好的日志和报告去跟踪脚本执行结果。

关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架。

界面自动化测试框架核心是选择 一个用来编写脚本的语言,一个用来web界面的库,管理脚本的执行工具。这里选择python,web界面库用的selenium,脚本管理工具可以用unittest单元测试框架。测试报告可以用unittest库下的拓展HtmlTestRunner。

常见的测试框架

1)模块化驱动测试

2)数据驱动测试

3)关键字驱动测试

模块化驱动测试:是指将重复的操作独立成公共模块,当用例执行过程中需要用到这一模块操作时就调用。最大限度的消除了重复。从而提高测试用例的可维护性。

数据驱动测试:数据驱动说白了就是数据的参数化,因为输入数据的不同获得不同的输出结果。不管把数据放在数组,字典或者外部的文件(excel,csv、txt、xml),目的都是为了让数据和操作分离。

关键字驱动测试:就是把数据换成了关键字,比如以前的QTP和selenium IDE。关键字驱动测试可以使用Tobot Gramework关键字驱动测试框架

自动化测试框架需要什么

首先我们来思考一下界面自动化测试框架需要些什么?或者说需要实现哪些功能?由哪些部分来组成?

1)输出日志文件

2)测试基类封装

3)配置文件

4)测试脚本

5)管理、执行测试脚本方式

6)测试报告输出

7)第三方插件

8)持续集成

解释:

通过日志输出,我们可以知道测试用例的执行情况:比如请求哪个地址,请求内容是什么,响应码多少,响应内容是什么,断言结果,是否测试通过,如果产生报错,脚本执行失败,可以通过日志快速定位错误发生的位置。

测试基类封装,就是把我们很多需要重复使用的功能,写成一个公共方法,放到一个基本类下面,方便每次调用,例如配置文件增删改查,请求的再封装,响应码断言,响应内容字典迭代等。

需要一个配置文件去控制一些环境信息,比如测试地址,用户信息,保存在测试过程中的一些值,方便后续测试用例的调用,配置文件可以是txt/xml/ini,Python的话一般用ini文件。

测试脚本就是我们对被测接口,具体实现测试的代码,一般我喜欢按照功能模块新建.py文件。

管理和执行脚本的方式,可以使用python单元测试框架unittest。因为我们不可能一个个用例的去执行,通过一个这样的框架,确定所需执行的脚本数量,脚本执行顺序

执行了多少测试case,case的结果如何,这些都需要通过一个测试报告来展示,一般都是通过第三方插件来实现,使用unittest可以使用其拓展HTMLTestRunner来进行生成测试报告

第三方插件,有时候有些功能别人已经写好了,直接拿来用就行,比如上面提到的生成测试报告

持续集成,git,svn,maven,jenkins,比如把脚本放到jenkins上,达到持续集成,一键就能执行测试脚本。自动化测试是指开发,运维,测试都通过持续继承,自己手动去运行代码只能算是半自动

本文的界面自动化测试框架:python3+selenium+unittest+HTMLTestRunner

源码地址需要的可以拿去

python3+selenium框架设计02-自动化测试框架需要什么的更多相关文章

  1. 基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  2. 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架   QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...

  3. golang web框架设计1:框架规划

    GO WEB 编程13节,如何设计一个web框架 学习谢大的web框架设计 总体介绍 实现一个简易的web框架,我们采用mvc模式来进行开发. model:模型,代表数据结构.通常来说,模型类时包含查 ...

  4. python3+selenium框架设计07-unittest单元测试框架

    可以自行百度学习下单元测试框架,或者看Python3学习笔记26-unittest模块 在项目下新建一个entrance.py文件.并使用之前的测试用例进行演示.目前项目结构. ​ 在entrance ...

  5. jenkins、ant、selenium、testng搭建自动化测试框架

    如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开ec ...

  6. Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

  7. python3+requests库框架设计05-unittest单元测试框架

    unittest单元测试框架,主要由四部分组成:测试固件.测试用例.测试套件.测试执行器 测试固件(test fixture) 测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫 ...

  8. Selenium高级篇Web自动化测试框架

    现在常用的是对象模型PO(Page Object), 从过去要知道具体的定位,返回使用现在只需要知道所在页面的名称即可访问页面对象即可看到该页面的元素 PageObject实现了对页面对象及方法的抽离 ...

  9. WisDom.Net 框架设计(七) 验证框架

    WisDom.Net-验证框架 1.分类 这里我们将数据验证分为以下几种 数据类型校验      主要用于确保数据类型输入的正确  比如年龄一项输入 A岁 ,显然不合法 域检查             ...

  10. WisDom.Net 框架设计(一) 总体框架

    WisDom.Net总体框架 1.目标 WisDom.Net  做为以后快速开发相关的软件的基础框架,实现用户,权限,角色,菜单,和工作流的管理功能.相关功能可以独立使用,快速用于其他程序的开发.预计 ...

随机推荐

  1. JDK记录-JVM原理与调优(转载)

    转载自<https://www.cnblogs.com/andy-zhou/p/5327288.html> 一.什么是JVM JVM是Java Virtual Machine(Java虚拟 ...

  2. 解决 Ubuntu 经常 卡死

    ubuntu 的卡死可能与显卡驱动不兼容有关. 这里提供2种方式, 1.禁用原来自带的nouveau显卡驱动sudo gedit /etc/modprobe.d/blacklist.conf在最后一行 ...

  3. js方法参数中含有单引号双引号的处理

    最近在做项目时,遇到一个问题.当在js脚本中,拼接生成一个tr,然后添加到一个表格里. //假定testval是从后台传过来的数据 var testval = "含有'半角单引号的字符串&q ...

  4. 【2】【leetcode-105,106】 从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树

    105. 从前序与中序遍历序列构造二叉树 (没思路,典型记住思路好做) 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [ ...

  5. HDU 6373(斜面上小球弹跳 运动分解)

    题意是给定两个点的位置,过原点引一条射线穿过第一个点,射线位置作为斜面位置,第二个点处令一小球自由落体,问小球能碰撞到斜面几次. 开始时想算出两次碰撞中小球沿斜面运动的距离,然后发现每一段距离会因为高 ...

  6. Spark源码解析 - Spark-shell浅析

    1.准备工作 1.1 安装spark,并配置spark-env.sh 使用spark-shell前需要安装spark,详情可以参考http://www.cnblogs.com/swordfall/p/ ...

  7. [Android] Android 使用Greendao gradle 出现 Error:Unable to find method 'org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)

    Android 使用Greendao gradle 出现 Error:Unable to find method 'org.gradle.api.tasks.TaskInputs.file(Ljava ...

  8. 建立爬虫代理IP池

    单线程构建爬虫代理IP池 #!/usr/bin/python3.5 # -*- coding:utf-8 -*- import time import tempfile from lxml impor ...

  9. Ext.net NumberField要设置MinValue,MaxValue

    <Items> <ext:NumberField ID="NumberField1" runat="server" FieldLabel=&q ...

  10. Spring 快速开始 配置Spring Framework

    [配置Spring Framework] 1.XML配置依赖关系 bean是由Springframework管理,我们自己编写bean,Spring也内建了bean,比如ApplicationCont ...