您好,欢迎访问三七文档
何谓自动化测试?简而言之,所谓的自动化测试就是将您现有的手动测试流程给自动化。而且要实施自动化测试的公司或组织,本身必须要有一套“正规(formalized)”的手动测试流程。而这个正规的手动测试流程至少要包含以下的条件:I.详细的测试个案(testcases):从商业功能规格或设计文件而来的测试个案,包含可预期的(predictable)的预期结果(expectedresult)。II.独立的测试环境(testenvironment):包含可回复测试资料的测试环境,以便在应用软件每次变动后,都可以重复执行测试个案。手工测试自动化测试测试设计测试执行测试用例测试设计测试实现测试执行测试用例1输入数据2操作3预期结果1业务数据2业务功能实现业务功能所占用的时间所占用的时间自动化测试目的自动化测试最实际的应用与目的是自动化回归测试(regressiontesting)。也就是说,必须要有用来储存详细测试个案的数据库,而且这些测试个案是可以重复执行于每次应用软件被变更后,以确保应用软件的变更没有产生任何因为不小心所造成的影响。“自动化测试脚本(script)”同时也是一段程序。为了要更有效的开发自动测试脚本,必须和一般软件开发的过程一样,建立制度以及标准。要更有效的运用自动化测试工具,至少要是受过良好训练的技术人员,换句话说,至少要是一位程序设计师(programmer)。自动化测试框架--无框架阶段在早期,自动化测试并没有框架这一说,自动化测试只是简单的录制/回放,由工具录制并记录操作的过程或数据,并形成脚本。通过对脚本的回放重复人工操作的过程。这种模式脚本与数据混合在一起。站在软件开发的角度来看,这种开发耦合度高,我们知道软件工程的思想,是高内聚低耦合。而简单的录制回放完全违背了这一思想,简单的录制回放,重用性非常低,同时维护成本非常高。自动化测试框架--数据驱动框架阶段无框架阶段最大的缺点就是脚本与数据混合在一起。为了解决这一问题,自动化测试框架发展到了数据驱动框架阶段。该框架从数据文件中读取数据,通过参数化的方式将数据文件中读取数据写入到脚本中(好比从数据库中读数据),由于不同的数据对应着不同的测试用例,将脚本与数据彻底地分离,因此提高了脚本的使用率,大大降低了脚本的维护成本。虽然数据驱动框架解决了脚本与数据的问题,但并没有将被测试对象与操作分离。自动化测试框架--关键字驱动框架阶段关键字驱动框架是在数据驱动框架的基础上改进的一种框架模型。它将测试逻辑按照关键字进行分解,形成数据文件与关键字对应封装的业务逻辑。主要关键字包括3类:被测试对象(Item)、操作(Operation)和值(Value).用面向对形式将其表现为Item.Operation(Value)。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离自动化测试框架--混合模型框架阶段关键字驱动框架将自动化测试框架带入了一个新的阶段,自动化测试工具QuickTest也很好地使用了该理念,但在实际开展自动化测试的时候,发现测试工具所带来的关键字驱动框架还是无法很好地完成测试任务。该框架虽然将数据与脚本进行了分离,但是如果要更灵活地调用测试用例中的数据或输出测试结果,该框架无法做到;并且如果需要读取其他文件存储格式中的数据时也无法很好地解决。因此,在自动化测试开始的前期,工程师会开发一个符合实际测试的框架来支持后期的测试工作,这就是通常所说的混合模型自动化测试框架。自动化测试的设计参数调用参数调用参数调用业务功能测试用例模块化设计基于功能分解的思想,把业务对象分解成最基本的业务动作,并建立可独立执行的脚本。业务功能测试用例业务功能测试用例业务数据驱动业务业务功能,完成一个完整的测试用例。业务数据驱动自动化测试的实现关键字驱动关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)业务功能值(value)操作(Operation)操作(Operation)值(value)操作(Operation)值(value)…被操作对象(item)被操作对象(item)被操作对象(item)功能自动化测试工具列表RationalRobotWinRunnerSilkTestQARunTestPartnerQuickTestProfessionalAdventNetQEngineHolodeckTelelogicTAUQTP基础学习--安装Addins:插件包Bin:可执行程序CodeSamplePlus:示例代码Help:帮助中心Sample:示例程序QTP基础学习--启动“开始”菜单中的“所有程序”“QuickTestProfessional”“QuickTestProfessional”QTP界面介绍菜单常用快捷键KeywordView和ExpertViewDataTable和ActiveScreenQTP示例程序(飞机订票系统)所在目录:\samples\flight\app;观察界面,根据提示输入用户名和密码:QTP基本操作:录制NormalRecording(正常录制)QTP默认为正常录制模式。它通过识别程序中的对象来代替以前屏幕坐标的形式。但是正常模式并不能保证程序中的所有对象都被识别。因此还要其他两种模式来补充Analogrecording(模拟录制)相对于指定窗口录制-如果对其执行操作的对象位于一个窗口内部而且该窗口在模拟录制会话期间没有移动。这可以确保在运行会话过程中,QuickTest将准确地标识在其上执行模拟步骤的窗口位置,即使当您运行模拟步骤时窗口位于不同的位置。QuickTest不会录制在指定窗口外部执行的任何单击或鼠标移动。当使用这种模式时,QuickTest不会捕获任何ActiveScreen图像。相对于屏幕录制-如果在其上录制模拟步骤的窗口在录制过程中移动,或者您所执行的操作是针对位于多个窗口内的对象。这可能包括将对象从一个窗口拖放到另一个窗口中。当使用这种模式时,QuickTest将捕获您在其中进行录制的窗口的最终状态的ActiveScreen图像。使用“模拟录制”录制的步骤被保存在单独的数据文件中。该文件与在其中录制模拟步骤的操作或组件一起存储。当以“模拟录制”模式进行录制时,QuickTest将向测试或组件添加一个调用所录制的模拟文件的“RunAnalog”语句。相应的ActiveScreen将显示在模拟录制会话期间执行的最后一个模拟步骤的结果注意:不能编辑模拟录制的Stepslow-levelrecording(低级录制)使用“低级录制”在不受QuickTest支持的环境或对象上进行录制。当您需要在应用程序屏幕上录制操作的精确位置时,请使用“低级录制”。当以正常模式录制时,QuickTest将在对象上执行步骤,即使该对象已经移动到屏幕上的新位置。如果对象的位置对于您的测试或组件非常重要,请切换到“低级录制”以使QuickTest能够按照屏幕上的x坐标和y坐标录制该对象。这样,该步骤只有在对象位于正确的位置时才能通过。当使用“低级录制”时,QuickTest将所有父类对象录制为Windows测试对象,将所有其他对象录制为WinObject测试对象。它们在ActiveScreen中显示为标准Windows对象。“低级录制”对每个测试对象支持下列方法:WinObject测试对象-Click、DblClick、Drag、Drop、TypeWindow测试对象-Click、DblClick、Drag、Drop、Type、Activate、Minimize、Restore、Maximize以“低级录制”模式录制的每个步骤都显示在关键字视图和专家视图中。(“模拟录制”仅录制关键字视图中那个调用外部模拟数据文件的步骤。)QTP基本操作:回放录制完成后为了验证录制的正确与否,需要进行脚本回放QTP基本操作:查看报告回放结束后,可以在Automation——Result中查看结果报告在Tools——Option——Run标签中是否勾选viewresultswhenrunsessionends来设定results在什么时候显示QTP基本操作:调试在要调试的步骤前插入breakpointView——DebugViewerDebug——stepover或stepintoRuntostep:从脚本开始跑到你指定的step停止Debugfromstep:从当前指定的步骤开始跑到结尾检查点概述检查点类型描述用法示例标准检查点检查对象的属性值。检查是否选中某单选按钮。图像检查点检查图像的属性值。检查图像源文件是否正确。表检查点检查表中的信息。检查表单元格中的值是否正确。页面检查点检查网页的特性。检查加载网页所需的时间,或者检查网页是否包含中断链接。文本/文本区域检查点检查文本字符串是否显示在网页或应用程序窗口中的适当位置。检查预期的文本字符串是否显示在网页或对话框上的预期位置。位图检查点将网页或应用程序的某个区域捕获为位图后对其进行检查。检查网页或网页的任何部分是否能按预期显示。数据库检查点检查应用程序或网站所访问的数据库内容检查数据库查询中的值是否正确。可访问性检查点对网站区域进行识别,以检查是否符合508部分。检查网页上的图像是否包含ALT属性(该属性是Web内容可访问性规则所要求的)。XML检查点检查XML文档的数据内容。注意:XML文件检查点用于检查特定的XML文件;XML应用程序检查点用于检查网页中的XML文档。QTP基本操作:增加步骤(1)选中AgentName点右键InsertStep——StepGeneratorQTP基本操作:增加步骤(2)QTP基本操作:增加对象(1)在录制过程中可能会遇到有些对象无法添加到步骤中,这就需要我们手工把这些对象添加到对象库中,为程序的录制做好准备注意:识别对象和将对象添加到对象库是不同的操作。QTP基本操作:增加对象(2)QTP基本操作:增加ActionQTP基本操作:关联对象(1)当一个Action中想使用另一个Action中的对象时,需要进行对象关联。当需要关联时需要先将Action中的对象导出到本地,然后才能进行关联。QTP基本操作:关联对象(2)QTP基本操作:参数化(DataTable)QTP基本操作:参数化(Environment)QTP基本操作:参数化(DataDriver)
本文标题:功能测试自动化工具
链接地址:https://www.777doc.com/doc-16042 .html