什么是自动化测试框架

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

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

界面自动化测试框架核心是选择 一个用来编写脚本的语言,一个用来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. Centos 7最小化Mongodb部署操作

    基本组件 mongodb-org mongodb-org-server mongodb-org-mongos mongodb-org-shell mongodb-org-tools 文件位置 /var ...

  2. Kafka权威指南 读书笔记之(一)初识Kafka

    发布与订阅消息系统 数据(消息)的发送者(发布者)不会直接把消息发送给接收者,这是发布与订阅消息系统的一个特点.发布者以某种方式对消息进行分类,接收者(订阅者)订阅它们, 以便接收特定类型的消息.发布 ...

  3. redis使用问题一:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool] with root cause

    本文使用的是spring-data-redis 首先说下redis最简单得使用,除去配置. 需要在你要使用得缓存得地方,例如mybatis在mapper.xml中加入: <cache evict ...

  4. centos升级openssh版本

    似乎升级就是简单的安装ssh包就行了,没进行其他修改,虚拟机24个中高低漏洞解决 安装最新包: 1.下载:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/por ...

  5. 浅谈style.,currentStyle,getComputedStyle,getAttribute

    xxx为属性. ele为元素. 1.style.是针对于样式 在前面的一篇博客中我也有说到,ele.style.xxx; 通常用于赋值,赋值也是针对于行内样式,用它来取值的话,它只能取到内联样式. 今 ...

  6. 【noip 2016】普及组

    T1.买铅笔 题目链接 #include<cstdio> #include<algorithm> #include<cstring> using namespace ...

  7. 唯一约束(UNIQUE_KEY)

    唯一约束可以保证记录的唯一性 唯一约束的字段可以为空值(NULL) 每张数据表可以存在多个唯一约束(主键只有一个) mysql> CREATE TABLE tb7( -> id SMALL ...

  8. Python转义字符&字符串运算符

    Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符.如下表: 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a ...

  9. JQuery-change/select/submit

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 【mmall】mybatis三剑客

    mybatis-generator mybatis-plugin Mybatis Plugin插件安装破解及使用:http://blog.csdn.net/u011410529/article/det ...