自动化测试框架之robot framework的应用分析

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

  首先,看看robot framework吧web

  1、robot介绍api

  你们上网查robot,相信能查到这么几个资料;框架

  一、robot的快速入门,就是如何简单使用robot,这是翻译过来的教程。我的以为,通常人拿到这个教程容易懵,由于你是在不了解其原理的基础上操做,因此会遇到不少问题而没法向下进行。工具

  二、 robot的源码分析,讲讲robot怎么一步一步工做的,如今robot框架不断升级,这个源码分析教程有点旧了,因此代码有些不同。源码分析

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

  2、robot原理学习

  robot的基本运做流程以下:测试

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

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

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

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

  五、以后,进行suite中的用例测试,而后调用关键字,找到关键字对应的库文件,进行操做。

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

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

  3、robot的应用

  robot的缺陷在于不够灵活,有些地方对咱们广泛不适用,因此,咱们须要会将robot分解,取之咱们能用的,如下提供几个分解方式

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

  二、robot的用例格式须要固定,而咱们不少时候都有本身的自动化测试用例编写规则,这样的话,咱们能够写一个转换器,能够将本身的测试用例解析文件解析为robot可识别的用例文件。

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

  四、Robot的日志文档很好,若是咱们有本身的关键字测试框架,但须要调用robot的日志api,则能够:1)由于robot是解析xml文件生成Html的,咱们能够调用python的xml操做库生成符合robot的xml格式的输出文件,而后调用robot的转换库生成Html便可。2)咱们能够直接重构robot的xml输出类,简化成咱们的形式便可。

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

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

  二、容易定位问题,通常咱们定位测试问题,首先,是从用例—功能—单个操做。而线性脚本则是相反的,因此会很差定位。

  总结:

  一、不少框架不必定能拿来就用,咱们要作的是分析源码,学会拆分框架,取之本身能用的,开源的框架通常代码结构都挺良好,接口定义挺清楚。尽量的不要造车的同时还要本身造轮子。

  二、从robot上面,咱们能够很好的学习到关键字测试驱动思想和数据测试驱动思想的应用。

相关文章
相关标签/搜索