什么是RobotFramework
RobotFramework是一款基于python的开源自动化测试框架,常用于验收测试以及验收测试驱动开发(ATDD)。基于关键词写出来的自动化用例,可读性非常高,即使不懂代码也可以写出足够清晰的自动化用例。完全可媲美于手工用例。同时它的高扩展性体现在可以使用java&python去扩展自定义一些测试库以及基于一些已有的关键词自定义一些高级关键词(higher-level keywords),便于测试开发人员基于各自项目的业务进行封装,它只是实现了一个框架的功能,至于你要在框架下使用何种语言,何种技术,则可以自己灵活地选择。同时运行结果也提供了非常美观的测试报告及测试日志。
先谈关键字驱动
使用关键词驱动模式,首先使得我们的自动化用例具备非常高的可读性,只要由测试开发人员封装好关键词库,即使是业务测试人员,也可以很方便地编写自动化用例;其次,可以在基本关键词的基础上构造高级关键词,这使得我们的自动化有了无限扩展的可能;
例如假如我们以测试计算器功能为例,参照官方github上的例子:
这边其实包括了4个测试用例,及连续输入、简单加、复杂运算、复位功能,“Push Button”、“Result should be”都是我们在关键词库中预先定义好的关键词,实现了简单的操作及断言功能;
次谈数据驱动
数据驱动引入了一个非常有效的概念,即“模板”概念,在很多测试场景下,测试人员输入的操作是有一定重复性的,区别只在于输入的数据,还是以登陆为例,除了包含正常的测试用例,还需要有其他的异常用例覆盖才能保证登陆接口的正确性。基于横向构造不同的测试数据输入来判断不同的测试结果,即为数据驱动。行为可以封装成模板。
还是以Github上的官方用例为例:
该用例定义了两个模板,一个是Calculate计算模板,一个是错误模板。然后直接根据测试数据执行即可。
再谈行为驱动
行为驱动是一种在关键词驱动之上更加抽象更加高级的自动化测试手段;通常结构是“Given-When-and-Then”,即在一个什么样的前置条件下,当用户触发了什么操作,产生了一个什么样的结果,结果该是怎么样。还是以测试及计算器为例。