序言:很多人都对自动化测试框架痴迷,我曾经也痴迷过一段时间,以前觉得自己对框架说的头头是道,现在回过头来看以前,说归说,但在如何应用还是欠缺,这一段时间,自己经历了一系列框架的构建和应用的时期,所以,我想主要从实际原理和应用上来说说测试框架,这些框架包括:关键字测试框架robot,基于各种语言的STAF框架,集成测试框架Fit(husdon),以及elipse TPTPd性能测试框架等。这不是一套工具教程,而是一套应用的简单思想,个人难免有局限性,见谅。

  首先,看看robot framework吧

  一、robot介绍

  大家上网查robot,相信能查到这么几个资料;

  1、robot的快速入门,就是如何简单使用robot,这是翻译过来的教程。个人觉得,一般人拿到这个教程容易懵,因为你是在不了解其原理的基础上操作,所以会遇到很多问题而无法向下进行。

  2、 robot的源码分析,讲讲robot怎么一步一步工作的,现在robot框架不断升级,这个源码分析教程有点旧了,所以代码有些不一样。

  Robot是一个完全基于关键字测试驱动的框架,它即能够基于它的一定规则,导入你的测试库(例如:其集成了selenium的测试库,即可以理解为操作web控件的测试底层库),然后基于这些测试库,你能应用HTML、TXT等文档形式编写自己的关键字(这些关键字即你的库组成),之后,再编写测试用例(测试用例由测试关键字组成)进行测试。例如:一个简单的登陆测试由:登陆+输入密码+登出三个关键字组成,也可以由一个关键字登陆组成,关键字颗粒的大小可以自行定制。

  二、robot原理

  robot的基本运作流程如下:

  1、robot开始测试是从cmd命令输入,robot初始运行程序接收命令字符(主要是用TXT或者HTML写的测试用例集)

  2、接收之后,robot先生成初始化全局变量配置,主要是定义一系列的字段名称和文件名称(例如:日志文件名称等)(由settings.py中的类完成)

  3、之后,开始解析用例文件,生成数据对象,数据对象中包含了测试集的各种数据,例如:测试用例集名称、各个测试用例名称、各个关键字名称等。

  4、将测试数据对象传送给测试集合类处理,生成测试集suite对象.

  5、之后,进行suite中的用例测试,然后调用关键字,找到关键字对应的库文件,进行操作。

  6、每一个操作和结果都写在输出的xml文件中(有专门调用对输出xml进行操作的类)

  7、测试完成后,调用转换类将xml文件转换成相应的HTML日志报告,测试完成。

  三、robot的应用

  robot的缺陷在于不够灵活,有些地方对我们普遍不适用,所以,我们需要会将robot分解,取之我们能用的,以下提供几个分解方式

  1、robot的需要用命令行的方式去启动测试,我们可以更改为自行写一个测试执行客户端界面,选取相应测试用例集合,下发到robot框架的程序入口。

  2、robot的用例格式需要固定,而我们很多时候都有自己的自动化测试用例编写规则,这样的话,我们可以写一个转换器,可以将自己的测试用例解析文件解析为robot可识别的用例文件。

  3、第2个的另外一种解决方法就是:做一个数据解析器,将我们的测试用例生成传送给测试集合的数据对象的对象规范

  4、Robot的日志文档很好,如果我们有自己的关键字测试框架,但需要调用robot的日志api,则可以:1)因为robot是解析xml文件生成Html的,我们可以调用python的xml操作库生成符合robot的xml格式的输出文件,然后调用robot的转换库生成Html即可。2)我们可以直接重构robot的xml输出类,简化成我们的形式即可。

  而在实际脚本的应用好处就是

  1、关键字思想驱动的好处就是应用封装的思想,保证了上层脚本的变动性可控,增强了维护性。

  2、容易定位问题,一般我们定位测试问题,首先,是从用例—功能—单个操作。而线性脚本则是相反的,所以会不好定位。

  总结:

  1、很多框架不一定能拿来就用,我们要做的是分析源码,学会拆分框架,取之自己能用的,开源的框架一般代码结构都挺良好,接口定义挺清楚。尽可能的不要造车的同时还要自己造轮子。

  2、从robot上面,我们可以很好的学习到关键字测试驱动思想和数据测试驱动思想的应用。

自动化测试框架之robot framework的应用分析的更多相关文章

  1. 简单介绍下自动化框架:Robot Framework

    一.简介: Robot Framework:Robot Framework是由Python编写的一款功能丰富并且扩展性强的自动化测试框架,也可以在Java和 .NET 上运行. HttpRunner: ...

  2. Robot Framework(十七) 扩展RobotFramework框架——扩展Robot Framework Jar

    4.4扩展Robot Framework Jar 使用标准JDK安装中包含的jar命令,可以非常简单地向Robot Framework jar添加其他测试库或支持代码.Python代码必须放在jar里 ...

  3. 基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架

    前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...

  4. 基于Python3.7 Robot Framework自动化框架搭建

    一.Robot Framework 和 Selenium 的区别(面试常问) 主流自动化测试框架有Robot Framework 和 Selenium,请根据实际场景选用不同的框架,以下总结各自优缺点 ...

  5. 【转】推荐4个不错的Python自动化测试框架

    之前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架.一个测试框架应该具有最佳的测试用例.假设(assumptions).脚本和技术来运行每一 ...

  6. Robot Framework测试框架学习笔记

    一.Robot Framework框架简介         Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...

  7. Robot Framework使用Phantomjs进行无界面UI自动化测试

    Robot Framework 是一款关键字驱动的验收自动化测试框架,现在在国内使用的越来越广泛了.一种通用的Web UI自动化测试解决方案是Robot Framework+Selenium2Libr ...

  8. Robot Framework 自动化测试

    Robot Framework 自动化测试 RIDE 是 Robot Framework 测试数据的编辑器.它使测试用例的创建.运行.测试项目的组织可以在图形界面下完成. 通过 RIDE 去学习和使用 ...

  9. 基于Robot Framework的接口自动化测试

    Robot Framework框架简介 Robot Framework框架是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD),使用的是关键字驱动的测试方法.它本身拥有强大的标准库,此外 ...

随机推荐

  1. (转)SpringMVC学习(二)——SpringMVC架构及组件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...

  2. Codeforces Gym 100650B Countdown (离线)

    题目链接:http://codeforces.com/gym/100650 根据给出的树和d,求出一些结点,这些结点形成子树的第d层结点数应该尽量多,具体要求可以参考题目. dfs一个结点前保存询问深 ...

  3. ping 不通。无法访问目标主机

    台式机 使用无线网卡  又登录了VPN 有时候访问不了局域网内的主机 解决方案  添加路由即可 window+R 打开运行 输入cmd  然后输入 route add 10.16.1.89 10.13 ...

  4. hash 散列表

    一个字符串的hash值: •现在我们希望找到一个hash函数,使得每一个字符串都能够映射到一个整数上 •比如hash[i]=(hash[i-1]*p+idx(s[i]))%mod •字符串:abc,b ...

  5. ES6新增rest的用法

    arguments类似Array但是并不是Array 而rest就是一个Array 用rest替代atguments eg:给数组排序 //arguments变量的写法: function sortF ...

  6. selenium--Xpath定位

    前戏 前面介绍过了七种定位方式,今天来介绍最后一种,也是最强大,本人最常用的定位方式xpath Xpath 即为 xml 路径语言,它是一种用来确定 xml 文档中某部分位置的语言.Xpath 基于 ...

  7. git 不完全教程

    概念 工作目录:当前所见,Working directory 暂存区域:以后要提交到仓库的文件,称为Index或者staging area Git 仓库:持久化存储快照的地方,HEAD指针所指向的地方 ...

  8. noip_最后一遍_3-数据结构

    noip基础数据结构太多了又太捞了 所以也就那么几个了 单调队列滑动窗口 #include<bits/stdc++.h> using namespace std; #define maxn ...

  9. 全排列问题(DFS)

    题目描述: 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列,每行一个序列 ...

  10. History Api以及hash操作

    https://segmentfault.com/a/1190000002447556#articleHeader12 https://developer.mozilla.org/zh-CN/docs ...