UI自动化在RobotFramework中采用的分层设计
RF测试数据
RF测试数据由4种表数据组成。这些测试数据由表的第一个单元格标识,名称和用法如下:
表名 |
用法 |
别名 |
设置表 |
导入测试库,资源文件和变量文件。为测试套件和测试用例定义元数据 |
Setting settings metadata |
变量表 |
定义可在测试用例中其他位置使用的变量 |
Variable variables |
用例表 |
测试用例 |
Test Case |
关键字表 |
从现有的低级别关键字创建用户关键字 |
Keyword User Keyword
|
其中,分层思想直接体现在关键字表和用例表。
RF分层设计模式其实就是根据需求使用抽象与封装关键,把一个实现过程分成不同多层。把代码根据脚本特征拆封开来,提高代码的灵活性和清晰度,从而也让一些组件层内容可扩展、可复用、可维护。这种设计基于RF的关键字驱动。
具体的做法就是:通过调用的关键字不同,从而引起测试结果的不同。“关键字”的底层其实还是程序定义的方法。我们可以把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。
RF分层可大致分为 元素层、组件层、流程层,用例层四层。当然可以根据项目实际应用采取减少层次或者增加层次,核心设计思想就是覆盖测试流程的基础上增加代码的复用程度,减少重复代码量。
以测试页面登陆为例子:
元素层:
将测试过程中用到的变量等的数据元素集中在这里。如果需要修改测试的基础数据,例如定位的元素等。这里采用定义变量和用户关键字均可。如果元素有变动,修改起来很方便。
组件层:
页面上的功能组件操作的封装。创建之前应先导入元素层的资源。除了个别流程的独有操作,这一层应该实现操作步骤的细化封装,例如登陆页面的操作有:打开网址、输入用户名、输入密码、点击登陆按钮等。每一个动作都可以拆分,形成独立的关键字。
流程层:
组件层基础上的进一步封装。要求能覆盖掉所有的测试流程,同时兼顾用例中输入的灵活性。
用例层:
测试用例执行。经过业务流程层的拼装,可以像写列表一样编写测试用例。
封装的资源数据流转顺序如下: