1.自动化测试(silktest)--学习总册

majian0803 贡献于2017-02-07

作者 caogd@asiainfo-linkage.com  创建于2013-09-24 09:36:00   修改者harevy  修改于2014-01-11 10:23:00字数6301

文档摘要:
关键词:

自动化测试(SilkTest) 文档修订摘要 日期 修订号 描述 编者 审阅者 批准人 2013-9-20 1 编辑,整理 韩子辉 2014-01-10 2 修改补充 韩子辉 1 总体概述 自动化测试的一般步骤,包括创建、录制、编辑、调试、执行等。 认知点滴:编辑是对录制的结构化、参数化、智能化处理,自动化测试是模拟手工测试并智能化。 2 参考资料 l 公司资料 l 网络资料 l 个人资料 3 名词术语 人工测试 自动化测试 SilkTest 自动化测试管理平台 AL-ATS 4 SilkTest 4.1 介绍工具 4.1.1 自动化测试 手工测试软件是一个耗时、乏味的过程,并且无法保证不同版本和不同平台的一致性。另外,由于时间限制,在应用程序发布之前,往往无法获得充足的时间对其进行手工测试和再测试。“是不是还有未发现的严重bug?”这样的问题不可避免地存在着。 测试自动化将有利于更好的使用资源。熟练的测试者可以将更多的努力放在设计更好的测试上,而另一方面,被整晚搁置的机器 ,也可以用来运行无人值守的自动化测试。用SilkTest进行自动化软件测试的好处: l 提高回归测试覆盖率; l 减少测试用时, 使产品更快地投放市场; l 提高人工测试效率; l 提高测试重用性; l 提供详细的测试日志。 4.1.1.1 分层测试 可操作性测试 冒烟测试。 检查每个对象,验证每个对象的指定属性,如:状态、大小、标题和内容。 功能性测试 检查一组共同为终端用户提供指定特征的对象的行为。这包括把一个对话考虑成一个对象的集合并且验证它所提供的功能,也包括验证对象之间的交互。例如,验证当选中一个复选框时,文本框是否可用。 系统测试 检查待测程序和其他软硬件产品在软件环境下的交互作用。 4.1.1.2 其它测试 回归测试 为一个程序的新版本运行已有的测试。 错误测试 验证系统在发生错误时的响应能力。 压力测试 测量系统对重复或者大量数据的响应能力。 白盒 vs. 黑盒测试 白盒测试着重于软件(代码)内部结构,而黑盒测试则是从终端用户的角度来看的,它们并不知道内部代码。 4.1.2 SilkTest SilkTest 简介 SilkTest 是一款先进的自动化功能测试工具,它可以帮助用户检查程序是否如预期那样运行地准确,稳定。通过SilkTest,用户可以跨多语言、多平台和多个Web浏览器对单个业务、混合业务进行同步功能测试。 SilkTest 的工作原理是通过自动捕获,检测用户第一次执行测试的操作,并把其对应的输出结果保存为预期结果(通过设置验证点)。然后在后续测试中,SilkTest 会自动重复用户交互的操作,并检查实际结果是否和第一次保存的预期结果一致,自动产生测试结果和测试报告,供用户进行检查和分析。 通过SilkTest ,用户能够发现功能性的软件缺陷,并且确保那些跨越多个应用程序和数据库的业务流程在初次发布就能避免出现故障,并保持长期可靠运行。 图表 1 工作三部曲:录制-修改(参数化)-回放时自动运行,记录结果 应用程序一般由用户可以使用键盘和鼠标进行初始应用操作的图形用户界面(GUI)对象组成,如视窗,菜单和按钮。SilkTest解释这些对象并基于类、属性和方法来唯一地识别他们。在测试中,SilkTest通过与对象交互来自动提交操作,模拟用户的动作并验证每个动作的结果。SilkTest作为模拟用户驱动应用程序。 SilkTest由两个完全不同的组件组成,而它们都在独立的进程中执行。 l SilkTest主软件 l SilkTest代理软件 SilkTest主软件 SilkTest代理软件 待测程 序 4Test脚本 GUI命令 SilkTest主软件 主软件是您用来开发、编辑、编译、运行和调试脚本和测试计划的SilkTest 组件。运行该组件的机器则通常被归为主机。 SilkTest代理软件 SilkTest的代理部分是SilkTest和应用程序的GUI交互的组件。该代理把您的4Test脚本中的命令翻译成GUI指定的命令,并驱动和监视您所测试的应用程序。它可以运行在主软件所运行的同一台机器上,而在网络环境中,可以通过远程机器运行任意数量的代理组件。在网络环境中, 运行代理的机器通常被归为远程机。 导航式的工作流程,简单易用快速上手 SilkTest 使用工作流式的导航按钮模式, 在SilkTest 中,无论是基本的录制-回放流程,还是数据驱动工作模式,都可以通过简单点击工作栏上的导航式按钮直接完成,通过工作流模式的导航功能,用户可以迅速上手,快速掌握和使用SilkTest。 广泛支持常用应用环境,投资最大化 SilkTest 支持众多的应用环境。未经改动的单一测试脚本能够在Windows NT和Windows 2000,Windows XP的多种本地化版本上同时运行。因为SilkTest 支持包括HTML、JavaScript、ActiveX、Java、Visual Basic, Delphi,.Net和C/C++在内的多种开发平台,进一步缩减了测试开发和执行时间。SilkTest 还认可国际化键盘,并提供对现场敏感数据(如日期和数字)的全面处理能力,从而确保本地化版本的一致性运行。 集成测试计划,有效管理测试用例 SilkTest 集成测试计划(TestPlan)模块;在测试计划模块,用户可以增加和设计测试需求,维护测试相关的人员,测试类型,测试时间等信息。并把完整的测试需求分解为众多小的需求用例,每个需求用例可以设置单独的测试属性,如设计其对应的测试负责人等。 同时,每个测试需求都可以和测试用例直接关联,如设计某个小的需求是测试人员A负责,其需要执行的测试用例是测试用例B等。通过测试计划模块,测试需求和测试用例进行了的映射,对测试用例是一个集中的管理。 4.2 安装工具 请参见:《2.自动化测试(SilkTest)--安装及卸载分册.ppt》 4.3 使用工具 4.3.1 开发语言 4Test脚本语言。 请参考:《3.自动化测试(SilkTest)--4Test语法教程.doc》 4.3.2 一般步骤 创建测试计划 自动化测试流程往往是从创建一个测试计划开始的。测试计划是一份运行测试案例的脚本文档。 创建测试框架 通过为您的测试创建一个框架来把SilkTest和待测应用程序结合起来。 测试框架存储了所有支持您的测试脚本的数据结构。 录制、编辑与回放 通过录制、编辑与回放,创建测试用例。 运行 直接运行一个测试案例。 从测试计划运行一个或多个测试用例。 报告 SilkTest会在执行测试用例时自动地把统计信息记录在结果文件中。 结果文件提供了测试用例、脚本、测试包或测试计划执行的结果。 跟踪 最后一阶段主要是确认所测应用程序的缺陷。您一定希望实现一个缺陷追踪系统在开发和测试过程中来监控您的应用程序以确保程序能按所期望的来执行。 4.3.3 体系结构 先了解一下SILKTEST的整体结构是怎样的,以及各个部分在功能测试过程当中所起到的作用。 SILKTEST控制器和Agent都是SILKTEST的一部分。 控制器的作用主要是录制、编辑测试脚本,建立测试计划,控制Agent执行功能测试。Agent相当于一个解释执行器,它的主要作用是识别被测应用UI部分,识别鼠标键盘操作;在录制脚本时它能够将对UI部分的操作转换为测试脚本语言;在执行测试用例时它也能够将测试脚本语言转换为对UI的操作。 SilkMeter是一个产品Licence的验证服务器,它对Borland的所有产品进行Licence检查。 被测应用客户端是被测试应用系统的UI部分,例如测试的web应用站点所采用的客户端是IE浏览器,如下图: 4.3.4 使用方法 请参见:《4.自动化测试(SilkTest)--录制分册.pdf》 4.4 其它工具 特征 SilkTest Winruner\QTP 一套工具,支持众多的测试环境,不需要插件 SilkTest支持各种Windows系统;针对Java的测试可以通过Agent在常用Unix平台下运行;支持的浏览器环境包括IE6,IE7,Netscape,FireFox 。没有插件的概念, 对Net,Java,C,C++,PB,WEB等都是直接支持,不需要购买第三方插件 Mercury的自动化测试工具分为Winrunner,QTP两个。 WinRunner主要支持传统的VB,Delphi,PB等应用程序; QTP主要支持Web,Java,Net等类型的应用; 测试不同的环境需要不同的插件 测试脚本统一,学习简单,重用性强 4Test(类似C++的语法)对初学者可以完全按照VBscript的习惯编写;对于熟悉OOP的技术人员,可以按照C++的习惯进行扩展,如扩展对象方法和属性,以简化脚本,增加可读性。是一种专门的自动化测试脚本语言。 WinRunner使用TSL支持(Test Script Language);QTP使用VBScript 分布式测试环境支持 支持测试脚本的分布式运行,即测试脚本可以在本机运行,也可以在指定的其他机器上运行,从而方便测试资源的集中管理和部署 不支持分布式测试,不同电脑之间的测试交互动作必须通过测试管理工具来协调 提供测试脚本的管理功能 可以设置测试计划,并在测试计划中统一管理测试用例,维护测试人员,测试类别等项目信息 没有测试计划,测试脚本管理的概念,需要通过测试管理工具执行 测试脚本的版本管理 可以直接和第三方版本管理工具协同工具,在Silktest中,通过选择菜单,直接把测试脚本保存到版本控制工具中。 支持CVS,ClearCase,Starteam,PVCS,VSS,SVN等主流的版本控制工具 提供独立的测试脚本运行机制 提供RunTime版本,可以运行脚本,不可以修改脚本 没有独立的开发版本和运行版本 测试报告的扩充性 可以根据不同的测试类型,测试属性,分别产生查询测试结果报告,如选择某个测试人员负责的所有项目的测试结果 测试报告可以保存在常用数据库系统中,如SQL Server,Oracle等,方便集中管理。 没有测试属性等概念,测试报告定制有限 5 AL-ATS AL-ATS=SilkTest及工程+被测系统+自动化测试管理平台。 5.1 系统结构 5.2 测试框架 请参见:《5.自动化测试(SilkTest)--测试框架分册.ppt》 5.3 开发步骤 5.3.1 录制脚本 5.3.1.1 录制操作 5.3.1.2 Classic方式 生成Gui结构 [+] window BrowserApplication WebBrowser [-] BrowserWindow BrowserWindow [ ] locator "//BrowserWindow" [+] DomElement OrderQuery [ ] locator "SPAN[@textContents='Order Query']" [+] DomTextField X120 [ ] locator "INPUT[@maxLength='120']" [+] DomTextField X255 [ ] locator "INPUT[@maxLength='255']" [+] DomTextField X22 [ ] locator "INPUT[@maxLength='22']" 生成静态语句: [ ] WebBrowser.BrowserWindow.X1000518.Click(MB_LEFT, 38, 6) [ ] WebBrowser.BrowserWindow.StoryOutcallDoubleStop.Click(MB_LEFT, 86, 11) 运行效率高,界面控件元素定义复杂。 5.3.1.3 OpenAgent方式 不生成Gui结构: 生成部分Gui结构:WebBrowser.BrowserWindow 生成动态语句: [-] for i=1 to iCount [ ] // for j=2 to iColumnCount []sCellValue=WebBrowser.BrowserWindow.FindDomTable("TABLE[@id='{sDataTable}']").GetCellText(i,iColumnNo) [ ] print("sCellValue:[",i,"][",iColumnNo,"]",sCellValue) [-] if sCellValue==sCellId [ ] print("The CellValue Was Found!") [ ] iContinue=1 []WebBrowser.BrowserWindow.FindDomElement("TD[@textContents='{sCellId}']").Click(MB_LEFT, 58, 11) [ ] break 运行效率低,界面控件元素定义简单。 其实这是上述两种方式的结合,运行效率更高。 5.3.2 编辑脚本 对脚本进行结构化和参数化处理。 调用If …else语句; 利用for语句循环; 利用分支switch...case...实现不同子功能的处理。 do [ ] //LogCaseStart() …………………… except [ ] ExceptLog() [ ] sInfo = ExceptData() [ ] sInfo = "调用函数ai_crm_RenewChangeCard_Smoketest出错,错误信息为:{sInfo}" [ ] LogCase(sCaseStep,sExpectResult,false,sInfo) [ ] reraise 数据驱动: 脚本内拟定。 读取Excel文件,像读取关系型数据库表一样读取文件中的数据; 读取数据库; 记录日志: 在测试前(设置测试数据时)、测试中(开始测试时)、测试后(测试结束时)都需要 记录日志,并为测试管理做好准备。 验证结果: 界面验证: 一般地说,对增、删、改、查来说,执行增加功能后,删除、修改和查询功能的执行成功与失败,就是对增加功能的验证。 数据库验证: 将预期结果和数据库的业务数据,进行比较,判断是否执行测试成功。 汇总:总分比对,记录数量; 明细:各种字段具体数值的比对、字段比对的覆盖率。 5.4 管理平台 5.4.1 系统结构 5.4.1.1 测试配置 5.4.1.2 测试执行 5.4.2 操作使用 请参见:《6.自动化测试(SilkTest)--管理平台操作分册.docx》 6 开发点滴 6.1 编码技巧 1、 Excel表格 必须读标题,没有标题,silktest则认为第1行数据看作标题。 所有每1列的类型应该一致,要么都是数字,要么都是字母,否则报错,若不一致,查询时,或报错,或忽略。 在一列上,目前数字和字母不兼容。 一列要么都是数字,要么都是字母 矩形区域,纵向1,2,,,横向:A ,B ,,,例如:A1,B5 2、在点击按钮随后弹出对话框时,应采用延时处理后续步骤,调用Exists() sleep()、waitfor()等函数实现等待。 3、在存在数据库操作的界面弹出前,做超时判断,因为这样的操作开销较大。 4、对话框,例如“确定”,一般需要判断是否存在,然后再操作。 5、对象是否存在、是否延时、是否为空、是否可见的处理 几种常用的方法:Exists(3),sleep(1),IsNull(),IsViable()。 6.2 编程规范 主程序:SalesManagement.t 业务函数:ai_crm_SaleManagement.inc 界面对象定义:ie_crm_SaleManagement.inc 变量定义: [ ] string sCaseStep="" [ ] string sCaseExceptResult="" [ ] string sInfo="" [ ] int iRetCode=-1 6.3 浏览器 在SilkTest测试工具Open Agent方式下,以更高版本支持IE8、Google Chrome和Mozilla FireFox的运行。 7 其它 请参考:《7.自动化测试(SilkTest)--学习分享分册.ppt》

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档