带有机器人框架的.NET自动化测试

  Clayton Neal在软件测试和质量保证方面有超过13年的经验,其中有八年的Windows, web,和移动应用程序的测试自动化经验。他在测试领域的所有等级都工作过。最近他在Bloomberg and Misys担任QA经理。同时他还是Sogeti的自动化测试顾问。Clayton对自动化测试超迷恋,还见识了如何亲自成功实施测试自动化。

?

  测试自动化的好处我们都很清楚,更快地反馈问题,减少手工测试,持续集成就是其中随口可举的。测试团队成员越多,公司使用自动化越多,就越好。为此,我们必须脱离实施测试自动化的技术方面,而去考虑编写和运行自动化测试的非技术员工层面。无论开发团队是否在做敏捷验收测试驱动开发(ATDD),敏捷行为驱动开发(BDD)或使用传统的瀑布方法,团队可用来进行自动化的成员越多,自动化测试覆盖范围就越广。
   关键字驱动测试是一种由自动化工程师开发被测应用程序内可重复使用行为的方法。然后非技术用户就可以用任何输入参数将所得的可重复使用的关键字行为库进行排序,确定测试用例。比如,一个关键字可以是点击按钮(在一个按钮控件上点击)或输入文本(在一个文本框控件中输入文本),然后这些关键字就可以被用来填写一个登录表格并点击 OK按钮。该方法的好处是:自动化工程师集中干他们擅长的,即开发关键字的测试自动化的脚本或编程;非技术测试员和企业用户使用这些关键字并基于他们的领域和产品知识来编写测试用例,最后使得自动化更加有效。
   ?机器人框架是一个一般的基于关键字的测试自动化框架,它不依赖于任何一个特定的自动化工具(如:QTP, Ranorex, TestComplete, Selenium等),却让自动化工程师插入用这类自动化工具的关键字。机器人已经安装了许多关键字并拥有一个非常成熟的功能集,包括:关键字的条件执行 
   ? 测试用例和测试集的[setup]和[teardown] 
   ? 数据驱动关键字文件,目录及流程管理的FOR循环 
   ? HTML测试报告 
   ?詹金斯CI集成将变量变为一个关键字并从测试用例关键字的关键字标注返回 
   ?最后列出的功能即能够在现有关键字上创建关键字,确保如图1所示的“关键字金字塔”的增长。

  金字塔最底层是由自动化工程师开发的技术关键字构成:最顶端是应用程序内进行单个功能行为的功能关键字:最后,我们将基于功能关键字的业务流程关键字总结为在应用程序内构建业务流程。这种分层的一个例子如表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所示。

图3.使用N机器人远程的机器人框架测试用例

  在上面这个例子里,设置一列告诉机器人框架,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

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

时间: 2024-10-07 20:24:51

带有机器人框架的.NET自动化测试的相关文章

带有机器人框架的.NET自己主动化測试

Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg and Misys担任QA经理.同一时候他还是Sogeti的自己主动化測试顾问.Clayton对自己主动化測试超迷恋,还见识了怎样亲自成功实施測试自己主动化. ? 測试自己主动化的优点我们都非常清楚,更快地反馈问题,降低手工測试,持续集成就是当中随口可举的.測试团队成员越多,公司使用自己主动化越多

wxBot微信机器人框架(转)

原文:http://blog.csdn.net/tobacco5648/article/details/50722321 wxBot 是Python包装Web微信实现的微信机器人框架.可以很容易地实现微信机器人. github地址: wxBot github 环境与依赖 目前只能运行于Python 2环境 . wxBot 用到了Python requests 和 pyqrcode 库,使用之前需要安装这两个库: pip install requests pip install pyqrcode

一个基于MFC的QQ机器人框架

GitHub项目地址:https://github.com/HarmoniaLeo/MFC-QQbot 0x00 这是什么? 欢迎使用本QQ机器人开发框架(如果有人会用的话).本框架是主要使用MFC中的Windows API制作而成.利用Windows的消息机制以及一些系统级底层架构实现利用TIM客户端自动收发QQ消息的QQ机器人框架,用其制作的QQ机器人程序已在VS2017下编译通过(仅支持ANSI字符集)并可正常运行. 在框架开发时主要考虑了其拓展性,通过拓展该框架,可以实现包括自动回复.定

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github.com/appium Appium的下载地址:http://appium.io/downloads.html,可以下载最新的安装版本和响应的Library库 Appium的相关介绍文档:http://appium.io/slate/cn/master/ Appium的RobotFramework-a

RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用

Input Text和Click Button Input Text 关键字一般用来给输入框进行输入操作,该关键字接收两个参数[ locator | text ]. 示例1:启动安卓手机上一个APP的MainActivity,在打开Activity,进入界面后,分别向两个EditText输入框中输入12,并且点击按钮"计算"来计算出输入的这两个数字的乘积. APP的界面如下,提供了两个输入框,还有一个计算的Button按钮. 在写这个自动化案例前,我们可以使用安卓SDK提供的Ui Au

RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用

在AppiumLibrary库中,Open Application关键字用来打开一个待测试移动APP. 示例1:连接本机已经打开的appium服务端,打开一个待测试的安卓APP,指定测试平台为Android,测试的手机deviceName为98YFBP522VSU,需要打开的APP路径为C:/Users/yongqing/Desktop/app-debug.apk,APP的包名为com.example.calculator,启动的appActivity为MainActivity Open App

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Application. Close All Applications 关闭掉当前已经打开的所有的APP Application,该关键字不需要接收任何的参数. Background App 让当前APP Application 运行在后台,该关键字接收一个参数[后台运行的时间],示例: Background App

谈自动化测试框架思想与构建

序言:也许到现在大家对所谓的"自动化测试框架"仍然觉得是一种神秘的东西,仍然觉得其与各位很远:其实不然,"自动化测试框架"从理念来说,并不复杂,但其之所以神秘,是因为其运用起来很是复杂,每个公司,每个部门其产品线,其运作流程都是不同的,所以就导致了在想运用"自动化测试框架"去完成自动化测试时产生了很多不定因素,导致了很多自动化测试项目的失败,让人对"自动化测试框架"开始敬而远之. 而自动化测试发展也有一段时间了,为什么到现在虽

Selenium + Python 自动化测试框架搭建

这段时间在自学Python,主要是想接触自动化测试,在一番摸索下,觉得用selenium+python的自动化测试框架来开展自动化测试,第一步自然是要先搭建好环境.在网上搜了不少帖子,加上自己的摸索,做了一些记录,希望能够帮助到需要的小伙伴.具体步骤如下: Step1.安装python3.6.1 官网网址为https://www.python.org/downloads/windows/ (我不喜欢把软件装在C盘,影响内存,所以选择安装在D盘) 安装的时候选择的是自定义安装,勾选一下加入环境变量