带有机器人框架的.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
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
带有机器人框架的.NET自己主动化測试的更多相关文章
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- 基于QTP的自己主动化測试框架介绍
继前面用了七章介绍了基于QTP的自己主动化測试框架,以下再用几个视频再补充一下. 视频一:基本框架特点介绍说明 .框架的特点从正反两面进行了分析以及主要思想 http://v. ...
- Robot Framework自己主动化測试框架之我见
一些自己主动化測试现状: 盲目的去做自己主动化,终于以失败告终. 觉得是能提高效率的事情.却推广不下去: 事实上上述问题产生的原因是: 自己主动化測试案例稳定性不高,可维护性比較差: 自己主动化測试工 ...
- Windows环境搭建Web自己主动化測试框架Watir(基于Ruby)
web自己主动化測试一直是一个比較迫切的问题 图1-1 须要安装的工具 http://railsinstaller.org/ 由于安装Ruby还须要用到其它的一些开发工具集.所以建议从站点http:/ ...
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- Android自己主动化測试之Monkeyrunner用法及实例
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...
- iOS自己主动化測试的那些干货
前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...
- Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)
我在之前的两篇文章中用java来实现过 Android 自己主动化測试(1)怎样安装和卸载一个应用(java).Android 自己主动化測试(2)依据ID查找对象(java). 可是本质上都是用mo ...
- Mock+Proxy在SDK项目的自己主动化測试实战
项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...
随机推荐
- 开源框架ViewPagerIndicator的使用——TabPageIndicator
1.导入Android-ViewPagerIndicator库文件 下载地址:https://github.com/JakeWharton/ViewPagerIndicator 2.布局文件 ...
- SqlServer字段说明查询(表基本信息查询)
--快速查看表结构(比较全面的) THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号 , col.name AS 列名 , ISNULL(ep.[v ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
- WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]
原文:WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过ServiceMetadataBehavior实现了基于WS-ME ...
- CCIE路由实验(8) -- QoS
1.查看端口缺省的队列机制2.配置CB-WFQ3.配置CB-LLQ4.配置CB-Shapping在以太接口下5.配置CB-Shapping在FR接口下6.配置帧中继流量整形FRTS7.配置CB-Pol ...
- TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志
TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志 TF-IDF与余弦相似性的应用(一):自动提取关键词 作者: 阮一峰 日期: 2013年3月15日 ...
- 如何使用不同dll的相同namespace下的相同接口
问题: 程序里加载了2个dll,这2个dll里都声明了同样的命名空间(这个不违法),然后在这个同样的命名空间下,他俩又定义了同名的interface. 然后我程序里直接using这个命名空间,使用这个 ...
- 《C++ Primer Plus》学习笔记1
C++ Primer Plus>学习笔记1 第二章.開始学习C++ 1.控制符endl 假设显示字符串时,在字符串中包括换行符,而不是在末尾加上endl,这样能够大大降低输入量:假设是要生成一个 ...
- longest incresing sequence
动态规划基本题目,longest incresing sequence,找出序列中的最长递增子序列: 例如给出序列{8,3,5,2,4,9,7,11}, 其中最长递增子序列为{3,5,9,11}或{3 ...
- Qt中Ui名字空间以及setupUi函数的原理和实现
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...