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

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

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

?

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

  測试自己主动化的优点我们都非常清楚,更快地反馈问题,降低手工測试,持续集成就是当中随口可举的。測试团队成员越多,公司使用自己主动化越多,就越好。为此,我们必须脱离实施測试自己主动化的技术方面,而去考虑编写和执行自己主动化測试的非技术员工层面。不管开发团队是否在做敏捷验收測试驱动开发(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金字塔”的增长。

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

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

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

表1. keyword分层

  这里,技术keyword是基于执行带有展示控件的自己主动化行为;功能keyword在应用程序中执行单个功能步骤;更高层的业务流程測试应用程序内端到端的流程。
   即用机器人框架能够从Python和Java库中载入新的keyword;为了使用在.NET中开发的keyword,就要利用远程服务界面。该界面是XMLRPC界面,机器人框架在上面给一个远程服务发送请求,运行一个keyword。当然这样的远程服务能够用不论什么一种支持XMLRPC的语言来开发。尤其是,一个远程服务能够用.NET开发让机器人框架运行keyword装配中的基于.NET的keyword。这种方法如图2所看到的。

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

图2. 远程服务结构图

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

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

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

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

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

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

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

图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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109692.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 查看进程的命令 linux_centos查看运行的进程

    查看进程的命令 linux_centos查看运行的进程关键字:linux查进程、杀进程、起进程1.查进程   ps命令查找与进程相关的PID号:   psa显示现行终端机下的所有程序,包括其他用户的程序。   ps-A显示所有程序。   psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。   ps-e此参数的效果和指定”A”参数相同。   pse列出程序时

  • pycharm入门教程(非常详细)_pycharm的用法

    pycharm入门教程(非常详细)_pycharm的用法PyCharmv2018.2最新版本下载 在PyCharm中使用IPython/JupyterNotebook在你开始之前在执行本教程的任务之前,请确保满足以下先决条件:您已经创建了一个Python项目。在本教程中,使用项目C:/SampleProjects/py/JupyterNotebookExample。 在Settings/Preferences对…

  • MySQL导入SQL文件及常用命令

    MySQL导入SQL文件及常用命令

    2021年10月17日
  • java之接口[通俗易懂]

    java之接口[通俗易懂]java之接口1、接口的概念2、接口的属性3、接口与抽象类4、静态和私有方法5、默认方法6、解决默认方法冲突7、接口与回调1、接口的概念在java中,接口不是类,而是对符合这个接口的类的一组需求接口用interface声明声明一个Comparable接口可以将接口看成一个没有实例字段的抽象类publicinterfaceComparable{ 声明一个方法,方法的实现由实现这个接口的类来实现方法 接口绝不会有示例字段,在java8以前,在接口中绝对不会实现 方法。 priv

  • Thread.currentThread().getContextClassLoader()与Test.class.getClassLoader()区别

    Thread.currentThread().getContextClassLoader()与Test.class.getClassLoader()区别忘记以前有没有问过这个问题,总之我现在有看到几个地方有这个:Thread.currentThread().getContextClassLoader()我总是想不出在什么情况下会用这种方式获得一个ClassLoader,因为好像默认情况下,它返回的是和加载应用的ClassLoader是同一个,比如说在一个类Test中写ClassLoader cl = Thread.curren

  • pycharm激活码2021年6月-激活码分享

    (pycharm激活码2021年6月)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlMLZPB5EL5Q-eyJsaWNlbnNlSWQi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号