笔者注:之前因为做app的自动化测试而接触过rf框架,现在重新整理一遍,帮助自己梳理一些知识点并进行更系统以及深入认识与理解。
初识RF
先简单说下自己对于RF的一些认识,会比较粗浅,毕竟接触还不是很多,这是一个慢慢学习的过程。
robotframework是一个开源的自动化测试框架,它可以做基于UI或者接口的验收测试(AT&ATDD) ,有着非常简单易用的语法,它的语法看上去就是一个表格(如果你使用官方推荐的RF编辑器ride,就可以看到它的语法完全可以转化成表格来表达),并且基于关键词驱动测试(keyword-driven testing)。它的一大特点就是可以使用java&python去扩展自定义一些测试库以及基于一些已有的关键词自定义一些高级关键词(higher-level keywords),这就意味着如果官方以及第三方提供的一些测试库没法满足项目的测试需求,你完全可以自己写一个测试库,并基于自定义的关键词去调用相应的测试库进行测试,扩展性非常强。还有一点非常方便的是,当你执行测试完成之后会自动生产一份测试报告(html格式),比较详细的展示了你的测试用例的执行情况,也可以通过查看执行测试的log来定位一些问题。
然而在实际使用过程中确实也遇到了一些各种各种的问题,其中最令人头疼的一个问题就是RF测试脚本的调试问题,官方提供的ride编辑器功能非常简陋,在使用过程中非常不方便,于是转投了sublime的怀抱(神器大法好),安装一个robot-framework-assistant插件即可使用,但调试依然是一个头大的问题,只能根据测试报告中的log慢慢定位,非常耗时。
RF框架结构简单认识
正如官网所说,RF是一个可扩展的模块化结构框架,如下图所示:
modular architecture
从上图可以看出,该测试框架分成4个层次。最上层Test Data即我们提供的测试数据(即测试用例、初始化数据以及一些配置信息等),简单的来说,这些测试数据会通过中间的RF层调用测试库(包括官方、第三方以及自定义)来对底层的被测系统进行测试的执行。即,RF框架会解析上层的测试数据,利用Test Libraries中提供的关键词驱动Test case的执行,达到对系统的测试目的。
这样的结构有很强的横向扩展性,这也是为什么我们可以近乎无限的去扩展我们的测试库(当然如果真的自定义了非常多的测试库,维护起来也是件麻烦事),这也是RF框架非常流行的一个重要原因。
网友评论