带有机器人框架的.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

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

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118208.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月9日 下午1:00
下一篇 2021年12月9日 下午1:00


相关推荐

  • python:获取当前日期时间

    python:获取当前日期时间方法利用 datetime 模块 importdateti datetime datetime now strftime Y m d H M S print now 输出 2020 08 2022 54 57 使用场景保存文件时 利用当前时间生成文件名

    2026年3月17日
    3
  • JAVA+Selenium2—淘宝秒杀购物车脚本

    JAVA+Selenium2—淘宝秒杀购物车脚本JAVA+Selenium—淘宝清空购物车脚本前言准备代码注前言对于自己近期学习的归纳与应用,只是个简单的线性脚本。之前学习了selenium,发现csdn上大都是python+selenium,故参考后改成java+selenium,另外把读取本地时间改成了读取网站时间,更为精确。准备JAVA环境,Selenium-2.46.0jar包,火狐浏览器固定版本(自用的可能是32.0)j…

    2022年5月8日
    127
  • java mongodb 使用MongoCollection,BasicDBObject 条件查询

    java mongodb 使用MongoCollection,BasicDBObject 条件查询

    2021年6月7日
    185
  • python视频识别_视频人员行为识别(Action Recognition)

    python视频识别_视频人员行为识别(Action Recognition)一.提出背景目标:给定一段视频,通过分析,得到里面人员的动作行为。问题:可以定义为一个分类问题,通过对预定的样本进行分类训练,解决一个输入视频的多分类问题。这里提出的问题是简单的图片(视频)分类问题,该问题的前提条件是:场景目标为单人,并且占据图片比较大的比例,如下图所示:还有一类问题是基于行人检测,去估计行人的姿态和动作,暂时不在本篇讨论范围内。二.行为识别的发展和其他领域一样,我们还是先从…

    2022年6月3日
    36
  • 初始java数组_初始化数组为0

    初始java数组_初始化数组为01.初始化定义2.数组的三种打印方式3.数组引用null4.浅谈引用变量的影响5.与数组相关的字符串操作以及javaJVM内存简单介绍6.浅谈二维数组与C的区别

    2022年10月21日
    3
  • android 进度条样式_前端圆环进度条自定义颜色

    android 进度条样式_前端圆环进度条自定义颜色进度条渐变效果如下图:在drawable文件夹中创建jian.xml主要代码: //半径<cornersandroid:radius=”5dip”/><gradient //角度android:angle=”0″//初始颜色an

    2025年6月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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