什么是关键字驱动框架?
关键字驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试。关键字驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤(Test Step),二是测试步骤中的对象(Test Object),三是测试对象执行的动作(Action),四是测试对象需要的数据(Test Data)。
以上四个部分,都可以使用Excel表格进行维护:
Test Step:是一个小的测试步骤的描述或者测试对象的一个操作说明。
Test Object:是指页面对象或元素,就像用户名、密码,
Action:指页面操作的动作,打开浏览器,点击一个按钮,文本框输入一串文本等。
Test Data:是任何对象操作时所需要的值,就像用户名、密码进行输入时的输入内容。
其实我们做关键字的驱动的思想,就是把编码从测试用例和测试步骤中分离出来,这样对于不会编码的人员更容易理解自动化,从而让手工测试人员也可以编写自动脚本。(这并不意味这不需要自动化测试人员,对于自动化框架的构建,自动化代码的更新,结构调整等都需要一个技术性的人员)对于测试小的项目的团队,可以有两个手工测试人员和一个自动化测试人员。
通过一个简单的登录功能例子来理解这个概念,想想看你的自动化流程需要做哪些事情:
打开一个浏览器
输入url跳转到网站首页
点击“登录”链接,进入登录页面
输入“用户名”
输入“密码”
点击“登录”按钮,进行登录
点击“注销”按钮,退出登录
关闭浏览器
下面是我们将要去实现的一些通用组件:
Excel Sheet: 是我们存放测试用例(Test Case)、测试步骤(Test Step)、测试对象(Test Object)和操作动作(Action)的关键字驱动数据表。
Object Repository: 是个属性文件,用来存放HTML应用中的一些元素属性(可看做元素的对象仓库),该文件与测试对象进行链接。
Keyword Function Library: 这是一个方法库文件,这个组件在关键字驱动框架中起着很重要的作用,它主要存放执行的Action,每一个操作动作都可以从这个文件中调用。
Data Sheet: Excel表格存储,测试对象在执行操作时所需要的数据值。
Execution Engine: 是唯一的测试脚本,它包含了所有的代码,通过关键字框架从Excel表格、方法库、属性文件中进行推动测试。
下面图片展示了关键字框架的通用工作流程:
一般的关键字驱动工作流程大概都是这个样子的。
Execution Engine starts the test and connect with the bundle of test cases and start executing one by one
(使用 Execution Engine 启动测试用例包,启动一个执行一个。)
Once Test Case is picked, linked test steps are followed sequentially
(一旦测试用例被选中,就会链接测试步骤顺序执行)
Test Steps are further connected with Page Objects, Actions & Test Data
(测试步骤会进一步链接页面对象,操作动作和测试数据)
Once Execution Engine gets all the required info to perform a test step, it connects with application and do the step.
(一旦Execution Engine获取到执行测试步骤所需的所有信息,他就会连接应用程序执行步骤)
优势
不需要太多的技术:一旦框架建立,手工测试人员和非技术人员都可以很容易的编写自动化测试脚本。
简单易懂:它存在Excel表格中,没有编码,测试脚本容易阅读和理解。关键字和操作行为这样的手工测试用例,使它变得更容易编写和维护。
早期介入:可以在应用未提交测试之前,就可以建立关键字驱动测试用例对象库,从而减少后期工作。使用需求和其它相关文档进行收集信息,关键字数据表可以建立手工测试程序。
组件的重用性:实施关键字驱动的模块化,进一步提高可重用性。
代码的重用性:作为关键字驱动框架中,只有一个执行引擎,它是鼓励极端的代码的复用。
基于关键字的Demo(Python版本):
/u/tsbc/p/Keyword-for-selenium/git
原文来自toolsqa,这里只做了翻译:
/selenium-webdriver/keyword-driven-framework/introduction/