![]() |
Clayton Neal在软件测试和质量保证方面有超过13年的经验,其中有八年的Windows, web,和移动应用程序的测试自动化经验。他在测试领域的全部等级都工做过。最近他在Bloomberg and Misys担任QA经理。同时他仍是Sogeti的自动化测试顾问。Clayton对自动化测试超迷恋,还见识了如何亲自成功实施测试自动化。 |
?html
测试自动化的好处咱们都很清楚,更快地反馈问题,减小手工测试,持续集成就是其中随口可举的。测试团队成员越多,公司使用自动化越多,就越好。为此,咱们必须脱离实施测试自动化的技术方面,而去考虑编写和运行自动化测试的非技术员工层面。不管开发团队是否在作敏捷验收测试驱动开发(ATDD),敏捷行为驱动开发(BDD)或使用传统的瀑布方法,团队可用来进行自动化的成员越多,自动化测试覆盖范围就越广。
关键字驱动测试是一种由自动化工程师开发被测应用程序内可重复使用行为的方法。而后非技术用户就能够用任何输入参数将所得的可重复使用的关键字行为库进行排序,肯定测试用例。好比,一个关键字能够是点击按钮(在一个按钮控件上点击)或输入文本(在一个文本框控件中输入文本),而后这些关键字就能够被用来填写一个登陆表格并点击 OK按钮。该方法的好处是:自动化工程师集中干他们擅长的,即开发关键字的测试自动化的脚本或编程;非技术测试员和企业用户使用这些关键字并基于他们的领域和产品知识来编写测试用例,最后使得自动化更加有效。
?机器人框架是一个通常的基于关键字的测试自动化框架,它不依赖于任何一个特定的自动化工具(如:QTP, Ranorex, TestComplete, Selenium等),却让自动化工程师插入用这类自动化工具的关键字。机器人已经安装了许多关键字并拥有一个很是成熟的功能集,包括:关键字的条件执行
? 测试用例和测试集的[setup]和[teardown]
? 数据驱动关键字文件,目录及流程管理的FOR循环
? HTML测试报告
?詹金斯CI集成将变量变为一个关键字并从测试用例关键字的关键字标注返回
?最后列出的功能即可以在现有关键字上建立关键字,确保如图1所示的“关键字金字塔”的增加。web
金字塔最底层是由自动化工程师开发的技术关键字构成:最顶端是应用程序内进行单个功能行为的功能关键字:最后,咱们将基于功能关键字的业务流程关键字总结为在应用程序内构建业务流程。这种分层的一个例子如表1所示。编程
表1. 关键字分层服务器
这里,技术关键字是基于运行带有展现控件的自动化行为;功能关键字在应用程序中运行单个功能步骤;更高层的业务流程测试应用程序内端到端的流程。
即用机器人框架能够从Python和Java库中加载新的关键字;为了使用在.NET中开发的关键字,就要利用远程服务界面。该界面是XMLRPC界面,机器人框架在上面给一个远程服务发送请求,执行一个关键字。固然这种远程服务能够用任何一种支持XMLRPC的语言来开发。尤为是,一个远程服务能够用.NET开发让机器人框架执行关键字装配中的基于.NET的关键字。这个方法如图2所示。框架
图2. 远程服务结构图工具
N机器人远程(见http://code.google.com/p/nrobotremote/)是一个能够创建.NET关键字库并经过XMLRPC协议将之公开给机器人框架的.NET机器人框架远程服务器。结合了N机器人远程的机器人框架可让最初的自动化工做用来计划哪些测试须要被自动化以及这些测试须要开发什么关键字,而不是在自动化测试计划能够开始前设计编写一个自动化框架。为N机器人远程开发.NET关键字仅仅就是开发一个公开方法的类。每一个方法都被视做一个关键字——例如:测试
该关键字类公开了两个关键字:ClickButton和EnterText。经过在N机器人远程中建立关键字类并把机器人框架指向XMLRPC地址,这些均可以用选择的自动化测试工具实现且能够经过机器人框架来调用。如图3所示。google
图3.使用N机器人远程的机器人框架测试用例spa
在上面这个例子里,设置一列告诉机器人框架,http://localhost:8271上有一个远程关键字服务(注意:除了本地主机,也多是在另外一机器上),且来自远程服务器的关键字将有前缀N机器人远程(任何前缀均可以)。测试用例一列则定义了一个叫作管理员登陆的测试用例,调用关键字EnterText去输入用户名和密码,关键字ClickButton去点击OK。这样一个测试有多是在开发早期一个非技术测试员或企业用户所写的。关键字库自己能够被视做被测应用程序的域模型之上的薄薄一层。好比,若是使用selenium页面对象,那么关键字层就能够如图4所示,按顺序调用页面对象和方法。设计
图4. 关键字和域层
这种抽象概念在被测应用程序变化时提供了灵活性,常常,当应用程序变化时,只有域模型和关键字实施随之改变。测试用例实施并不需一直不变,由于它建在更高层。使用机器人框架和.NET关键字也可使不一样的自动化工具在测试用例水平彼此整合,让自动化工程师能够灵活地为所需关键字行为选择最佳自动化工具。例如,若是在一家更大的公司,几支自动化团队已经被选去使用针对不一样产品模块的不一样自动化工具,每队就能够用他们各自的开发语言为其模块开发一个域模型,如机器人框架能够加载Python,Java和(经过N机器人远程).NET关键字。测试用例编写者也一样能够在他们的测试用例里使用来自全部自动化团队的关键字。
总结
经过容许非技术用户在开发各个阶段编写测试用例,将自动化行为从抽象变为能够传给非技术测试员和业务用户以减小自动化工程师的瓶颈的可复用关键字。机器人框架,做为一个成熟的通常性的关键字框架,容许自动化项目一开始集中研究自动化测试和所需关键字,而不是设计并实施一个测试框架。使用机器人框架和N机器人远程将关键字测试自动化扩大到.NET,容许关键字利用.NET框架和.NET中自动化工具的优点,并容许把来自Python和Java的关键字与相同的测试用例相结合。
版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/2014101194841.html
原创做品,转载时请务必以超连接形式标明本文原始出处、做者信息和本声明,不然将追究法律责任。