基于关键字驱动的Web自动化测试的研究

来源 :硅谷 | 被引量 : 0次 | 上传用户:cqy2002
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]研究与设计以Selenium测试工具为基础,运用关键字驱动技术,web应用的自动化测试框架。
  [关键词]关键字驱动WebSelenium
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1220051-01
  
  一、自动化测试技术概述
  
  (一)Web测试概述。随着互联网和Web技术的进步,Web应用频繁出现在人们工作生活中。作为用户,优秀的Web应用为工作与生活带来了很多便利与快乐。作为软件开发测试人员,Web应用系统的测试、确认和验收是一项重要而富有挑战性的工作。Web的系统测试与传统的软件测试不同,它不但需要檢查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。
  (二)自动化测试技术的发展。软件自动化测试技术的发展一般分为3代:
  第一代:录制和回放。由测试工具记录你所做的每一步操作,加以录制并回放出来。测试工具起到了一个录像机的作用,虽然操作异常简单,并且可以达到自动化测试的基本要求,但是缺少灵活性,自身没有判断能力,容易记录一些无用操作,并且维护费用比较高,一旦界面改变,脚本就将重新制作。
  第二代:数据驱动。从专有的数据文件中读取数据,并将这些测试数据放入测试脚本中,不同的数据文件对应不同的测试用例。和第一代相比,提高了脚本的利用率,但是同样受到被测软件界面变化的影响。
  第三代:关键字驱动。关键字驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。主要关键字包括三类:被操作对象(Item)、操作(OperatiOn)
  和值(value),用面向对象形式可将其表现为Item.operation(value)。
  关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。
  (三)Selenium介绍。Selenium是ThoughtWorks公司开发的一套基于Web应用的测试工具,直接运行在浏览器中,模拟客户操作,所见即所得,就像真实用户所做的一样。Selenium的核心,是用Javascript编写的。这使得测试脚本可以在所有支持Javascript的浏览器中运行。支持多操作系统(如Windows,Mac OS,Linux等)和各种浏览器(如Internet Explorer,Firefox等),更容易发现浏览器的兼容性问题。
  
  二、自动化测试框架概述
  
  为了实现基于关键字驱动的web自动化测试框架,主要实现有4个基本功能模块,分别为脚本生成模块,Selenium模块,执行模块以及结果分析模块。框架基本运行流程如下图。
  测试用例,通过测试脚本模块的分析,生成可测试的脚本,由执行模块控制Selenium,运行脚本,并将结果返回给结果分析模块分析,最后生成测试结果,完成整个测试。
  
  三、功能模块设计与实现
  
  本文以通过搜索引擎查找并返回结果页面为用例,说明相关模块的具体功能。
  (一)测试用例的编写方式。根据关键字驱动的原则,测试用例编写应注意将测试步骤按被操作对象(Item)、操作(Operation)和值(value)进行划分。如:
  该测试用例清楚的表达了每个测试步骤的对象和行为,实现对象,行为和数据的分离。测试用例可根据实际情况,选择不同的方式来存储。简单的文本文件、表格式的Excel文件、便于管理的数据库,等等。其中,对于大量测试用例,数据库存储将、有着易于管理,易于存档等诸多优势。
  (二)Selenium模块。本文主要使用Selenium RC模块。Selenium RC使用起来非常简单,仅仅运行一个可执行的jar文件,便可通过默认端口连接Selenium Server。当然,也可以设定参数来运行,包括更改默认端口,具体的可以参考Selenium参考文档。Selenium RC支持多种语言,如Java,C#,Perl,Python,Ruby,Html等,可以根据不同的环境和需要进行选择。
  (三)脚本生成模块。脚本生成模块的主要作用是对关键字数据文件进行分析,生成组织Selenium可执行的脚本的文件,提供给执行模块运行。脚本文件的生成,主要使用模块化的处理方式。根据关键字驱动的原则,模块以测试步骤为单位,可以根据具体情况来进行改动,对于相对固定,使用频率高的测试用例也可将其模块化。如本文用例,搜索引擎的界面已经相对稳定,且该测试用例使用频繁,则可以将整个用例作为一个测试模块,不仅降低了测试成本,同时提高的测试效率。模块以类的方式存在,简单的模块也可以以函数的方式存在,根据不同的关键字,使用不同的模块,而把值作为类成员或参数传入。
  (四)执行模块。执行模块是测试框架的核心,基本作用在于控制Selenium Server启动与终止,设置所需要的环境变量并运行测试脚本,得到返回信息并交予结果分析模块等。该模块的可以根据各种测试环境和测试规模的要求,开发扩展各种测试功能,如Selenium Server参数设置,查看控制测试脚本的运行状态等等。
  (五)结果分析模块。结果分析模块用于处理执行模块传回的结果并生成可查看的log文件,供测试人员分析评估。如本文例,通过对搜索引擎返回的HTML文件的分析,检查搜索是否成功,获取搜索结果。
  
  四、总结
  
  本文仅给出以关键字驱动为核心,Selenium为工具的自动化测试框架模块的基本功能,其中可以完善与扩展的方面还有很多。同时,Web应用的测试环境与用例复杂多样,要实现完整统一的自动化测试框架,并良好的控制测试框架开发的成本,还需要进一步的探索和研究。
  
  参考文献:
  [1]Patton,R.著、张小松等译,软件测试,北京:机械工业出版社,2006.
  [2]Selenium项目组,Selenium参考文档,http://seleniumhq.org/docs/.
其他文献
UV印刷的发展正在不断向前推进.研究UV印刷的重要内容是油墨和润版液在UV胶印中的平衡.本文以德国科研部资助的研究项目为基础,以在试验室进行的印刷试验作为补充,并对曼罗兰
柳宗元佛学思想的核心内容就是“统合儒释”,从理论上讲,有其历史的、文化的推演逻辑,其佛学思想对佛教在中国本土的发展起到了推动的作用,是士大夫吸收、消化佛教的一个典型
[摘要]通过实施信息化工程,真正做到管理规范化,监督透明化,统计上报自动化,它不仅缩短办事周期,提高工作效率和服务质量,同时也强有力地促进定点医疗服务机构各个层面管理水平的全面提高,从而使合作医疗工作真正成为取信于民的利民工程,是保障新农合长期稳定健康发展的重要保障,是新农合管理的发展趋向。  [关键词]合作医疗信息化管理   中图分类号:TP3文献标识码:A文章编号:1671-7597(2009
学校名称:海口经济职业技术学院学院代码:44602校区地址:海南省海口市国兴大道办学性质:国有全日制普通高校联系人:杜老师刘老师联系电话:0898—65370910、65351910传真电话
1982~1987年收治慢性肺原性心脏病152例患者,为防治上消化道出血、口服甲氰咪胍,取得了显著疗效,现介绍如下: 152例中,年龄在52岁~72岁,女102例,男50例。全部病例均有慢性呼吸
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
印前专家殷幼芳我有幸担任了3届数码印刷作品大奖赛的评委.亲身感受到了中国数码印刷的发展之快,参赛作品之多.应用领域之广,质量水平之高.创新设计之美.使人鼓舞.令人振奋
随着现代建筑数量和规模的不断增加,建筑行业在迎来前所未有的发展机遇的同时应该注重自身竞争能力的提升。作为建筑施工而言,只有不断的提升施工技术,同时加强对现场的施工
[摘要]针对因遭受木马病毒而受制于人的计算机——“肉鸡”这一信息社会现象由表及里,从木马病毒的本质、机理、客观存在的原因进行探究,并对木马病毒的防范策略与方法进行剖析与探索。  [关键词]肉鸡木马网络黑客计算机信息   中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1220047-02    近来以央视为首的新闻媒体和许多知名网站曝光了黑客利用木马进行“肉鸡”攻击的全过程
[摘要]色谱成为对映体拆分的重要工具。近几年各种手性源的积极研发使色谱在对映体分离工作中所起的作用越来越高效。因此,对色谱在对映体拆分的机制,分离模式及近几年新型手性源做一综述。  [关键词]手性分离色谱拆分手性源  中图分类号:O657.7文献标识码:A文章编号:1671-7597(2009)1220003-01    对映体的分离、分析在现代药物化学、生物化学、合成化学、农业化学等领域的研究中