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

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

?

  測试自己主动化的优点我们都非常清楚,更快地反馈问题,降低手工測试,持续集成就是当中随口可举的。測试团队成员越多,公司使用自己主动化越多,就越好。为此,我们必须脱离实施測试自己主动化的技术方面,而去考虑编写和执行自己主动化測试的非技术员工层面。不管开发团队是否在做敏捷验收測试驱动开发(ATDD),敏捷行为驱动开发(BDD)或使用传统的瀑布方法,团队可用来进行自己主动化的成员越多,自己主动化測试覆盖范围就越广。

   keyword驱动測试是一种由自己主动化project师开发被測应用程序内可反复使用行为的方法。然后非技术用户就能够用不论什么输入參数将所得的可反复使用的keyword行为库进行排序,确定測试用例。比方,一个keyword能够是点击button(在一个button控件上点击)或输入文本(在一个文本框控件中输入文本),然后这些keyword就能够被用来填写一个登录表格并点击 OKbutton。该方法的优点是:自己主动化project师集中干他们擅长的,即开发keyword的測试自己主动化的脚本或编程;非技术測试员和企业用户使用这些keyword并基于他们的领域和产品知识来编写測试用例,最后使得自己主动化更加有效。

   ?机器人框架是一个一般的基于keyword的測试自己主动化框架,它不依赖于不论什么一个特定的自己主动化工具(如:QTP, Ranorex, TestComplete, Selenium等),却让自己主动化project师插入用这类自己主动化工具的keyword。机器人已经安装了很多keyword并拥有一个很成熟的功能集,包含:keyword的条件运行

   ? 測试用例和測试集的[setup]和[teardown]

   ? 数据驱动keyword文件,文件夹及流程管理的FOR循环

   ? HTML測试报告

   ?詹金斯CI集成将变量变为一个keyword并从測试用例keyword的keyword标注返回

   ?最后列出的功能就可以以在现有keyword上创建keyword,确保如图1所看到的的“keyword金字塔”的增长。

  金字塔最底层是由自己主动化project师开发的技术keyword构成:最顶端是应用程序内进行单个功能行为的功能keyword:最后,我们将基于功能keyword的业务流程keyword总结为在应用程序内构建业务流程。这样的分层的一个样例如表1所看到的。

表1. keyword分层

  这里,技术keyword是基于执行带有展示控件的自己主动化行为;功能keyword在应用程序中执行单个功能步骤;更高层的业务流程測试应用程序内端到端的流程。

   即用机器人框架能够从Python和Java库中载入新的keyword;为了使用在.NET中开发的keyword,就要利用远程服务界面。该界面是XMLRPC界面,机器人框架在上面给一个远程服务发送请求,运行一个keyword。当然这样的远程服务能够用不论什么一种支持XMLRPC的语言来开发。尤其是,一个远程服务能够用.NET开发让机器人框架运行keyword装配中的基于.NET的keyword。这种方法如图2所看到的。

图2. 远程服务结构图

  N机器人远程(见http://code.google.com/p/nrobotremote/)是一个能够建立.NETkeyword库并通过XMLRPC协议将之公开给机器人框架的.NET机器人框架远程server。结合了N机器人远程的机器人框架能够让最初的自己主动化工作用来计划哪些測试须要被自己主动化以及这些測试须要开发什么keyword,而不是在自己主动化測试计划能够開始前设计编写一个自己主动化框架。为N机器人远程开发.NETkeyword只就是开发一个公开方法的类。每一个方法都被视作一个keyword——比如:

  该keyword类公开了两个keyword:ClickButton和EnterText。通过在N机器人远程中创建keyword类并把机器人框架指向XMLRPC地址,这些都能够用选择的自己主动化測试工具实现且能够通过机器人框架来调用。如图3所看到的。

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

  在上面这个样例里,设置一列告诉机器人框架,http://localhost:8271上有一个远程keyword服务(注意:除了本地主机,也可能是在还有一机器上),且来自远程server的keyword将有前缀N机器人远程(不论什么前缀都能够)。測试用例一列则定义了一个叫做管理员登录的測试用例,调用keywordEnterText去输入username和password,keywordClickButton去点击OK。这样一个測试有可能是在开发早期一个非技术測试员或企业用户所写的。keyword库本身能够被视作被測应用程序的域模型之上的薄薄一层。比方,假设使用selenium页面对象,那么keyword层就能够如图4所看到的,按顺序调用页面对象和方法。

图4. keyword和域层

  这样的抽象概念在被測应用程序变化时提供了灵活性,常常,当应用程序变化时,仅仅有域模型和keyword实施随之改变。測试用例实施并不需一直不变,由于它建在更高层。使用机器人框架和.NETkeyword也能够使不同的自己主动化工具在測试用例水平彼此整合,让自己主动化project师能够灵活地为所需keyword行为选择最佳自己主动化工具。比如,假设在一家更大的公司,几支自己主动化团队已经被选去使用针对不同产品模块的不同自己主动化工具,每队就能够用他们各自的开发语言为其模块开发一个域模型,如机器人框架能够载入Python,Java和(通过N机器人远程).NETkeyword。測试用例编写者也相同能够在他们的測试用例里使用来自全部自己主动化团队的keyword。

  总结

   通过同意非技术用户在开发各个阶段编写測试用例,将自己主动化行为从抽象变为能够传给非技术測试员和业务用户以降低自己主动化project师的瓶颈的可复用keyword。机器人框架,作为一个成熟的一般性的keyword框架,同意自己主动化项目一開始集中研究自己主动化測试和所需keyword,而不是设计并实施一个測试框架。使用机器人框架和N机器人远程将keyword測试自己主动化扩大到.NET,同意keyword利用.NET框架和.NET中自己主动化工具的优势,并同意把来自Python和Java的keyword与同样的測试用例相结合。

版权声明:本文出自 SPASVO泽众软件測试网:http://www.spasvo.com/news/html/2014101194841.html

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

时间: 2024-08-05 23:11:50

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

Robot Framework自己主动化測试框架之我见

一些自己主动化測试现状: 盲目的去做自己主动化,终于以失败告终. 觉得是能提高效率的事情.却推广不下去: 事实上上述问题产生的原因是: 自己主动化測试案例稳定性不高,可维护性比較差: 自己主动化測试工具学习成本高,自己主动化測试人员的成本高: 而RF(Robot Framework,后面都简称RF)具备良好的分层思想.它将測试人员分为懂开发和不懂开发的,懂开发来负责底层keyword开发和维护,供不懂开发的測试人员调用,通过填写表格的形式用自言语言来写自己主动化測试用例.这样写出来的用例測试用例

MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是当你搭建的安卓平台的时候常常须要FQ,那个慢不是常人能够忍受的.所以过程中建议大家边看书或者玩手机边搭建,省得一直瞪着屏幕导致爆血管的意外发生. 这里本人尝试把在mac上搭建移动平台自己主动化測试框架的一些碰到的问题和关键点给描写叙述一下.以方便后来者能够借鉴. 1. 假设你须要的是最新的eclis

Selenium2 Python 自己主动化測试实战学习笔记(五)

7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測试用例 手工測试用例是针对手工測试人员.自己主动化測试用例是针对自己主动化測试框架.前者是手工測试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析. 前者具有较好的异常处理能力,并且可以基于測试用例,制造各种不同的逻辑推断,并且人工測试步步跟踪,可以仔细定位问题.后者全然依照測试用例

Android自己主动化測试之Monkeyrunner用法及实例

眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monkey主要应用在压力和可靠性測试上,执行该命令能够随机地向目标程序发送各种模拟键盘事件流,而且能够自定义发送的次数,以此观察被測应用程序的稳定性和可靠性,应用起来也比較简单,记住那几个命令即可了.而monkeyrunner呢,相比之下会强大一些,它主要可应用于功能測试,回归測试,而且能够自定义測试扩展,

【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份

Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monkey随机測试工具到点触流自己主动化工具monkeyrunner.MonkeyTalk.基于元素识别的自己主动化框架sikuli.seeTest.iTest.基于控件识别的Robotium.SL4A.这三种技术各有千秋.基本上如今做出的自己主动化框架都是整合或者改动了以上这些免费的自己主动化框架:比方中

Mock+Proxy在SDK项目的自己主动化測试实战

项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - 错误日志打点 - 反作弊 团队现状 在项目推进的过程中.逐渐暴露了一些问题: 1. 项目团队分为上海团队(服务端)和北京团队(client),因为信息同步,人力资源等其它原因.服务端与client的开发进度非常难保持同步,经常出现client等着和服务端联调的情况 2. 接口文档不稳定,理解有偏差

小程聊微服务-增艺眼中的自己主动化測试

假设说"生活不仅仅有眼前的苟且,还有诗和远方"的话,那么自己主动化測试可以说是非常多測试人员心中的"诗和远方". "诗和远方"OR"禁果" 測试自己主动化,须要持续改进.但因为其本身是一种过于激动人心的想法:用程序去測试程序--解放了測试人员的生产力.节省大量的人力成本.这就有点"禁果"的意思了. 一个常见的行动模式是:在实施自己主动化測试时,设定一些量化指标,比如依据业务.接口.模块设置的覆盖率. 技术团

Android Monkey自己主动化測试

前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单介绍 Monkey是一个可执行在模拟器和实际设备中的Android命令行自己主动化測试工具,它能够模拟伪随机的用户事件流,比如点击.触摸.手势等.你能够使用Monkey对正在开发的程序进行压力測试. Monkey的特征: 測试的对象为程序包名,通过-p參数指定. Monkey測试使用的事件流.数据流

Android自己主动化測试解决方式

如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric.另外LessPainful也提供服务来进行真实设备上的自己主动化測试. Android自身提供了对instrumentation測试的基本支持,当中之中的一个就是位于android.test包内的ActivityInstrumentationTestCase2类,它扩展了JUnit的Test