1、单元6 自动化测试 飞机订票系统的测试 南京工业职业技术学院软件测试软件测试2学习导航学习导航南京工业职业技术学院软件测试软件测试引例描述引例描述v 小李被要求今天加班,因为他所参与的项目明天要升级生产环境,今天必须在测试环境下先升级,一旦测试不顺利,代码就都要回退,而很多的测试用例,小李已经重复执行过很多次了。v 自动化测试是相对于手工测试而言,把需要重复执行的测试步骤描写成测试脚本,让机器去重复执行,从而提高测试效率的测试方式。南京工业职业技术学院软件测试软件测试4本单元任务分解本单元任务分解自动化功能测试入门性能测试入门任务一任务一任务二任务二任务三任务三对飞行订票系统进行自动化功能测试
2、南京工业职业技术学院软件测试软件测试5单元介绍单元介绍本单元主要内容本单元主要内容v 软件测试自动化概念软件测试自动化概念v 自动化功能测试自动化功能测试 QTP基本功能基本功能 测试脚本测试脚本 测试结果分析测试结果分析v 性能测试性能测试南京工业职业技术学院软件测试软件测试6单元介绍单元介绍v 飞机订票系统飞机订票系统 是是QTP自带的示例程序,有自带的示例程序,有单机版单机版和和Web版版两种。两种。v 系统的主要功能系统的主要功能 单机版:登陆,订票,修改,删除,查询等单机版:登陆,订票,修改,删除,查询等 Web版:注册,登陆,订票等版:注册,登陆,订票等v 本模块主要针对该系统进行
3、自动化功能测试和简单的本模块主要针对该系统进行自动化功能测试和简单的性能测试。性能测试。待测系统说明待测系统说明南京工业职业技术学院软件测试软件测试7单元介绍单元介绍待测系统界面待测系统界面 飞机订票系统主界面飞机订票系统主界面南京工业职业技术学院软件测试软件测试8任务一:自动化功能测试入门任务一:自动化功能测试入门任务分析任务分析支撑知识支撑知识任务实施任务实施任务小结任务小结拓展实训拓展实训任务陈述任务陈述123知识准备知识准备任务实施任务实施任务陈述任务陈述45任务拓展任务拓展项目实训项目实训南京工业职业技术学院软件测试软件测试9任务简介任务简介任务任务1陈述陈述 本任务介绍了自动化测试
4、的基本概念,通过本任务介绍了自动化测试的基本概念,通过QTP自自带的飞机订票系统,介绍了带的飞机订票系统,介绍了QTP基本功能的使用,包基本功能的使用,包括录制括录制/回放脚本,并进行简单的测试脚本编辑,运行回放脚本,并进行简单的测试脚本编辑,运行和调试测试脚本,并分析测试结果。和调试测试脚本,并分析测试结果。南京工业职业技术学院软件测试软件测试10支撑知识支撑知识知识点列表知识点列表v 软件测试自动化软件测试自动化v 自动化测试工具自动化测试工具v QTPv 测试脚本测试脚本v 测试结果测试结果南京工业职业技术学院软件测试软件测试11一、软件测试自动化一、软件测试自动化定义定义 软件自动化测
5、试是把以人为驱动的测试行为转软件自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概件资源,提高测试效率,便引入了自动化测试的概念。念。南京工业职业技术学院软件测试软件测试12一、软件测试自动化一、软件测试自动化没有测试
6、没有测试手工测试手工测试 时间紧时间紧 可靠性低可靠性低 人力缺乏人力缺乏 无法保证一致性无法保证一致性 无法重复无法重复快速快速可重复可重复高覆盖率高覆盖率高可靠性高可靠性重用性强重用性强自动测试自动测试(一)(一)自动化测试的优势和局限性自动化测试的优势和局限性南京工业职业技术学院软件测试软件测试13一、软件测试自动化一、软件测试自动化自动化测试的优点自动化测试的优点可靠可靠自动化测试每次运行时都会准确执行相同的操作,自动化测试每次运行时都会准确执行相同的操作,因此消除了人为的错误因此消除了人为的错误 快速快速自动化测试的运行比实际用户快得多自动化测试的运行比实际用户快得多可重复可重复可以
7、通过重复执行相同的操作来测试软件的反应可以通过重复执行相同的操作来测试软件的反应 可编程可编程可以编写复杂的测试脚本来找出隐藏的信息可以编写复杂的测试脚本来找出隐藏的信息全面全面可以建立一套测试来测试软件的所有功能可以建立一套测试来测试软件的所有功能 可重用可重用可以在不同版本的软件上重复使用测试,甚至在用可以在不同版本的软件上重复使用测试,甚至在用户界面更改的情况下也不例外户界面更改的情况下也不例外(一)(一)自动化测试的优势和局限性自动化测试的优势和局限性南京工业职业技术学院软件测试软件测试14一、软件测试自动化一、软件测试自动化自动化测试无法做到:自动化测试无法做到:v测试用例的设计测试
8、用例的设计v界面和用户体验的测试界面和用户体验的测试v正确性的检查正确性的检查自动化测试永远自动化测试永远无法取代手工测无法取代手工测试!试!(一)(一)自动化测试的优势和局限性自动化测试的优势和局限性南京工业职业技术学院软件测试软件测试15一、软件测试自动化一、软件测试自动化(二)如何开展自动化测试(二)如何开展自动化测试软件需求变动不频繁软件项目周期比较长自动化测试脚本可重复使用 另外,在手工测试无法完成,需要投入大量时间另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。试、配
9、置测试、大数据量输入测试等。1.自动化测试的适用条件自动化测试的适用条件南京工业职业技术学院软件测试软件测试16一、软件测试自动化一、软件测试自动化(1)选择尽可能少的自动化产品覆盖尽可能多的平台,以选择尽可能少的自动化产品覆盖尽可能多的平台,以 降低产品投资和团队的学习成本降低产品投资和团队的学习成本;(2)测试流程管理自动化通常应该优先考虑,以满足为企测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求业测试团队提供流程管理支持的需求;(3)在投资有限的情况下,性能测试自动化产品将优先于在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑功能测试自动
10、化被考虑;(4)在考虑产品性价比的同时,应充分关注产品的支持服在考虑产品性价比的同时,应充分关注产品的支持服务和售后服务的完善性务和售后服务的完善性;(5)尽量选择趋于主流的产品,以便通过行业间交流甚至尽量选择趋于主流的产品,以便通过行业间交流甚至网络等方式获得更为广泛的经验和支持网络等方式获得更为广泛的经验和支持;(6)应对测试自动化方案的可扩展性提出要求,以满足企应对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。业不断发展的技术和业务需求。(二)如何开展自动化测试(二)如何开展自动化测试2.自动化测试方案的选择自动化测试方案的选择南京工业职业技术学院软件测试软件测试
11、17一、软件测试自动化一、软件测试自动化要求测试人员会要求测试人员会使用工具,掌握使用工具,掌握测试脚本的设计测试脚本的设计和编写。和编写。过早地介入会带过早地介入会带来维护成本的增来维护成本的增加。等界面稳定加。等界面稳定后再介入。后再介入。介入的时机介入的时机对测试人对测试人员的要求员的要求(二)如何开展自动化测试(二)如何开展自动化测试3.自动化测试的具体要求自动化测试的具体要求南京工业职业技术学院软件测试软件测试18二、自动化测试工具二、自动化测试工具(一)按用途分类(一)按用途分类测试管理工具测试管理工具QC,TD 自动化功能测试自动化功能测试工具工具Rational Robot,Q
12、TP,WinRunner 性能测试工具性能测试工具LoadRunner,WAS,JMeter 单元测试工具单元测试工具XUnit,JTest 白盒测试工具白盒测试工具Logiscope 测试用例设计工测试用例设计工具具Test case Designer 南京工业职业技术学院软件测试软件测试二、自动化测试工具二、自动化测试工具(二)按收费方式分类(二)按收费方式分类1.1.商业测试工具:如商业测试工具:如QTP,LoadRunnerQTP,LoadRunner。2.2.开源测试工具:如开源测试工具:如JUnit,JMeterJUnit,JMeter。3.3.免费测试工具:如免费测试工具:如WA
13、SWAS。南京工业职业技术学院软件测试软件测试20三、三、QTP QTP QTP的全称是的全称是QuickTest ProfessionalQuickTest Professional,是是 HP HP公公司的企业级自动化功能测试工具。它提供符合所有主司的企业级自动化功能测试工具。它提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采要应用软件环境的功能测试和回归测试的自动化。采用用关键字驱动关键字驱动的理念以简化测试用例的创建和维护。的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。
14、专业的测试者也可以通功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。性的完全控制。定义定义南京工业职业技术学院软件测试软件测试21三、三、QTP(一)(一)QTP的测试流程的测试流程v 准备录制准备录制v 录制应用程序上的会话录制应用程序上的会话v 增强测试增强测试v 调试测试调试测试v 运行测试运行测试v 分析测试结果分析测试结果v 报告缺陷报告缺陷南京工业职业技术学院软件测试软件测试22三、三、QTP(二)(二)QTP的特点的特点 QTPQTP的最大特点是测试脚本与测试对象分离,的最大特
15、点是测试脚本与测试对象分离,它提供了它提供了专家视图专家视图和和关键字视图关键字视图两种视图,并且提两种视图,并且提供了三种录制方式、四个窗口和七个验证点,并拥供了三种录制方式、四个窗口和七个验证点,并拥有先进的关键字驱动测试能力和数据驱动测试能力,有先进的关键字驱动测试能力和数据驱动测试能力,以及强大的测试脚本开发能力,被誉为测试人员的以及强大的测试脚本开发能力,被誉为测试人员的“倚天剑倚天剑”。南京工业职业技术学院软件测试软件测试23四、测试脚本四、测试脚本定义定义v 测试脚本测试脚本(Testing script),一般指的是一个特定),一般指的是一个特定测试的一系列指令,这些指令可以被
16、自动化测试工具测试的一系列指令,这些指令可以被自动化测试工具执行。执行。为了提高测试脚本的可维护性和可复用性,必为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建。测试脚本是须在执行测试脚本之前对它们进行构建。测试脚本是自动执行测试过程(或部分测试过程)的计算机可读自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成。合前三种方法来完成。v 测试脚本语言测试脚本语言(test
17、scripting language)是脚本)是脚本语言的一种,准确地讲是脚本语言在测试领域地一个语言的一种,准确地讲是脚本语言在测试领域地一个分支,是自动化软件测试设计的基础。常见的测试脚分支,是自动化软件测试设计的基础。常见的测试脚本语言有本语言有perl,tcl,vbscript,javascript,pathon等。等。南京工业职业技术学院软件测试软件测试24五、测试结果五、测试结果定义定义v 测试脚本运行完毕后,会自动显示测试脚本运行完毕后,会自动显示结果树结果树,结果树是按,结果树是按照访问网页的时间顺序进行组织的。照访问网页的时间顺序进行组织的。v 测试结果概要显示运行的测试名称
18、、结果名称、运行开测试结果概要显示运行的测试名称、结果名称、运行开始结束的时间;始结束的时间;v Itaration(循环概要)指示通过的循环和失败的循环;循环概要)指示通过的循环和失败的循环;v Status(状态概要状态概要)指示通过的或失败的检查点数、报告指示通过的或失败的检查点数、报告数、警告数;数、警告数;v 展开结果树,即可查看运行测试过程中每个操作的详细展开结果树,即可查看运行测试过程中每个操作的详细信息。信息。南京工业职业技术学院软件测试软件测试25任务实施:一、认识任务实施:一、认识QTP(一)(一)QTP的安装目录的安装目录 bin:bin:主要存放可执行文件和动态链接库文
19、件主要存放可执行文件和动态链接库文件 CodeSamplesPlus:CodeSamplesPlus:存放了一些实例代码,具有很好存放了一些实例代码,具有很好的参考价值的参考价值 help:help:帮助中心,有视频讲解和一些参考帮助信息帮助中心,有视频讲解和一些参考帮助信息 recovery:recovery:存放恢复文件存放恢复文件 samples:samples:示例程序,自带的是飞机订票系统示例程序,自带的是飞机订票系统 Addins:Addins:插件包插件包 Tests:Tests:存放安装路径的注册信息存放安装路径的注册信息 dat:dat:存放备份和配置信息存放备份和配置信息南
20、京工业职业技术学院软件测试软件测试26任务实施:一、熟悉任务实施:一、熟悉QTP基本功能的基本功能的使用使用(一)(一)QTP的主界面的主界面南京工业职业技术学院软件测试软件测试27任务实施:二、飞机订票系统分析任务实施:二、飞机订票系统分析(一)(一)Web版版(二)单机版(二)单机版南京工业职业技术学院软件测试软件测试28任务实施:三、实现对飞机订票系任务实施:三、实现对飞机订票系统录制测试脚本统录制测试脚本/运行运行(一)准备录制测试(一)准备录制测试1.1.确保是确保是 Mercury Tours Mercury Tours 网站的注册用户。网站的注册用户。2.2.如果使用如果使用IE
21、IE浏览器,将清除用户名和密码的浏览器,将清除用户名和密码的“自动完自动完成成”选项。选项。3.3.开始录制前,请关闭所有浏览器。开始录制前,请关闭所有浏览器。南京工业职业技术学院软件测试软件测试29任务实施:三、实现对飞机订票系统任务实施:三、实现对飞机订票系统录制测试脚本录制测试脚本/运行运行(二)录制测试(二)录制测试1.1.启动启动QTPQTP并新建一个测试。并新建一个测试。2.2.在在“录制和运行设置录制和运行设置”对话框中进行设置对话框中进行设置3.3.开始录制,打开开始录制,打开Mercury Tours Mercury Tours 网站网站。4.4.按照通过性测试用例来进行录制
22、。按照通过性测试用例来进行录制。5.5.保存测试。保存测试。南京工业职业技术学院软件测试软件测试30任务实施:四、实现对测试结果的任务实施:四、实现对测试结果的分析分析(一一)左侧窗格显示结果树左侧窗格显示结果树(二二)右侧窗格显示测试结果详细信息右侧窗格显示测试结果详细信息 南京工业职业技术学院软件测试软件测试31任务实施:五、实现对测试脚本的任务实施:五、实现对测试脚本的简单编辑与调试简单编辑与调试(一)在关键字视图中编辑测试脚本(一)在关键字视图中编辑测试脚本 1.1.修改调整脚本。修改调整脚本。对于录制的测试脚本,需要进一步修改和调整,如对于录制的测试脚本,需要进一步修改和调整,如调整
23、测试步骤的顺序,增加新的步骤或删除一些步调整测试步骤的顺序,增加新的步骤或删除一些步骤,这些工作可以很方便地在关键字视图骤,这些工作可以很方便地在关键字视图(Keyword(Keyword View)View)中进行,读者可自行操作。中进行,读者可自行操作。在关键字视图的在关键字视图的“Documentation”“Documentation”列的头部单击列的头部单击鼠标右键,选择鼠标右键,选择“Copy Documentation to“Copy Documentation to Clipboard”Clipboard”,可以导出测试步骤文档,生成测试用,可以导出测试步骤文档,生成测试用例。
24、例。南京工业职业技术学院软件测试软件测试32任务实施:五、实现对测试脚本的简任务实施:五、实现对测试脚本的简单编辑与调试单编辑与调试(一)在关键字视图中编辑测试脚本(一)在关键字视图中编辑测试脚本2.2.添加注释添加注释 可以手动地为测试步骤添加必要的注释。方法是:可以手动地为测试步骤添加必要的注释。方法是:在关键字视图的表格列头单击鼠标右键,选择在关键字视图的表格列头单击鼠标右键,选择“Comment”“Comment”,就会多出一列,在这一列中可以为需,就会多出一列,在这一列中可以为需要详细说明的步骤添加注释要详细说明的步骤添加注释 南京工业职业技术学院软件测试软件测试33任务实施:五、实
25、现对测试脚本的简任务实施:五、实现对测试脚本的简单编辑与调试单编辑与调试(二二)在专家视图中编辑测试脚本在专家视图中编辑测试脚本1.1.强大的强大的VBScriptVBScript脚本编辑器脚本编辑器 在专家视图中,测试人员可以直接编写测试脚本在专家视图中,测试人员可以直接编写测试脚本代码,代码,QTPQTP提供的脚本编辑器具有提供的脚本编辑器具有“语法感知语法感知”功能,功能,适合有一定编码技巧的自动化测试人员使用,可以适合有一定编码技巧的自动化测试人员使用,可以更灵活、快捷、深入地编辑测试脚本。更灵活、快捷、深入地编辑测试脚本。2.2.对象管理对象管理(1)(1)识别对象。识别对象。(2)
26、(2)对象库管理对象库管理南京工业职业技术学院软件测试软件测试34任务实施:五、实现对测试脚本的任务实施:五、实现对测试脚本的简单编辑与调试简单编辑与调试v 使用断点:使用断点:在专家视图中,点击代码行的左侧灰色部分,即可在专家视图中,点击代码行的左侧灰色部分,即可在本行设置断点,然后运行测试脚本,运行过程中会在本行设置断点,然后运行测试脚本,运行过程中会在断点处停住。在断点处停住。v 单步调试单步调试 停在断点后,选择菜单停在断点后,选择菜单“DebugStep Over”“DebugStep Over”,可,可跳到下一行代码继续运行。跳到下一行代码继续运行。v 运行整个测试运行整个测试 选
27、择菜单选择菜单“ToolsOptions”“ToolsOptions”,弹出运行方式设置,弹出运行方式设置的对话框的对话框,可以设置如脚本回放速度,运行时要否截屏可以设置如脚本回放速度,运行时要否截屏等。等。(三三)调试运行测试脚本调试运行测试脚本南京工业职业技术学院软件测试软件测试35任务拓展任务拓展1.Active Screenv Active ScreenActive Screen是是QTPQTP独有的一个功能,可用于录制测独有的一个功能,可用于录制测试脚本后辅助编辑和维护测试脚本。试脚本后辅助编辑和维护测试脚本。Active ScreenActive Screen既既是测试步骤的截图,
28、可用于直观地描述测试步骤,也是测试步骤的截图,可用于直观地描述测试步骤,也是一个测试对象的信息库,存储了测试步骤中测试对是一个测试对象的信息库,存储了测试步骤中测试对象的信息,这些信息可用于添加测试步骤,插入检查象的信息,这些信息可用于添加测试步骤,插入检查点。点。南京工业职业技术学院软件测试软件测试36任务拓展任务拓展1.Active Screen可以设置可以设置Active ScreenActive Screen捕获信息的级别。包括捕获信息的级别。包括4 4个级别:个级别:v(1 1)CompleteComplete:捕获和存储所有信息,包括每个步骤:捕获和存储所有信息,包括每个步骤中应用
29、程序的所有激活的窗口、对话框、中应用程序的所有激活的窗口、对话框、WebWeb页面等。页面等。v(2 2)PartialPartial:这是默认设置,捕获和存储第一个步:这是默认设置,捕获和存储第一个步骤所执行的应用程序窗口,以及该窗口下属的对象属骤所执行的应用程序窗口,以及该窗口下属的对象属性。性。v(3 3)MinimumMinimum:仅捕获和存储录制的对象及其父亲对:仅捕获和存储录制的对象及其父亲对象的属性。象的属性。v(4 4)NoneNone:屏蔽:屏蔽Active ScreenActive Screen捕获和存储对象属性捕获和存储对象属性的功能。的功能。v 存储越多的信息,对于后
30、期编辑测试脚本而言,会更存储越多的信息,对于后期编辑测试脚本而言,会更加容易,但是存的信息越多,录制过程则会越慢,而加容易,但是存的信息越多,录制过程则会越慢,而且需要更多的存储空间。且需要更多的存储空间。南京工业职业技术学院软件测试软件测试37任务拓展任务拓展2.QTP与其他工具的整合与其他工具的整合QTPQTP支持与支持与WinRunnerWinRunner、LoadRunnerLoadRunner等工具的整合,等工具的整合,可以在可以在QTPQTP中调用中调用WinRunnerWinRunner的测试脚本,可以在的测试脚本,可以在LoadRunnerLoadRunner中设计性能场景时加
31、入中设计性能场景时加入QTPQTP的测试脚本。的测试脚本。另外,另外,QTPQTP还可以和还可以和QCQC结合起来,建立一个业务流结合起来,建立一个业务流程测试框架,该框架可以让非技术人员、例如领域专程测试框架,该框架可以让非技术人员、例如领域专家、业务专家可以在非脚本编程的环境下通过业务组家、业务专家可以在非脚本编程的环境下通过业务组件来构建业务测试的过程。件来构建业务测试的过程。南京工业职业技术学院软件测试软件测试38项目实训项目实训 1.测试计算器程序测试计算器程序 对于计算器程序,用黑盒测试用例设计方法设计几对于计算器程序,用黑盒测试用例设计方法设计几组测试用例,用组测试用例,用QTP
32、QTP录制这几组测试用例并回放;在关录制这几组测试用例并回放;在关键字视图中编辑测试脚本,修改调整测试步骤,为测键字视图中编辑测试脚本,修改调整测试步骤,为测试步骤添加注释,并使用断点、单步调试等方式调试试步骤添加注释,并使用断点、单步调试等方式调试测试脚本,并运行部分测试和整个测试脚本,最后分测试脚本,并运行部分测试和整个测试脚本,最后分析测试结果。析测试结果。南京工业职业技术学院软件测试软件测试39任务二:对飞机订票系统进行自动化任务二:对飞机订票系统进行自动化功能测试功能测试任务分析任务分析支撑知识支撑知识任务实施任务实施任务小结任务小结拓展实训拓展实训任务简介任务简介123知识准备知识
33、准备任务实施任务实施任务陈述任务陈述45任务拓展任务拓展项目实训项目实训南京工业职业技术学院软件测试软件测试40任务陈述任务陈述任务任务2陈述陈述 本任务介绍了针对飞机订票系统进行关键字驱动本任务介绍了针对飞机订票系统进行关键字驱动测试和数据驱动测试。主要包括关键字视图的使用、关测试和数据驱动测试。主要包括关键字视图的使用、关键字驱动测试方法的使用、各种检查点的使用,以及对键字驱动测试方法的使用、各种检查点的使用,以及对测试脚本进行参数化,从而进行数据驱动测试,并讲解测试脚本进行参数化,从而进行数据驱动测试,并讲解了几种各种外部数据源的使用。了几种各种外部数据源的使用。南京工业职业技术学院软件
34、测试软件测试41支撑知识支撑知识知识点列表知识点列表v 关键字驱动测试关键字驱动测试v 检查点检查点v 数据驱动测试数据驱动测试南京工业职业技术学院软件测试软件测试42一、关键字驱动测试一、关键字驱动测试定义定义 关键字驱动测试方法关键字驱动测试方法(Keyword-driving testing),也叫表格驱动测试方法,是软件自动,也叫表格驱动测试方法,是软件自动化测试一种方法。关键字驱动测试把测试脚本的编化测试一种方法。关键字驱动测试把测试脚本的编程工作分离出去,让没有编程基础的人也能开发自程工作分离出去,让没有编程基础的人也能开发自动化测试脚本,减少了测试脚本的维护工作量。动化测试脚本,
35、减少了测试脚本的维护工作量。南京工业职业技术学院软件测试软件测试43一、关键字驱动测试一、关键字驱动测试(一)(一)关键字驱动测试的方法关键字驱动测试的方法将应用程序的将应用程序的GUI对象添加到对象添加到QTP的对象仓库的对象仓库对操作的对象设对操作的对象设计测试步骤计测试步骤南京工业职业技术学院软件测试软件测试44一、关键字驱动测试一、关键字驱动测试(二)关键字驱动测试框架(二)关键字驱动测试框架系统功能被文档系统功能被文档化成表格化成表格用指令性语句指用指令性语句指导测试步骤导测试步骤框架通过解释表格框架通过解释表格数据和关键字来执数据和关键字来执行测试脚本行测试脚本通过自动化框架,仅需
36、要测试人员开发表格和关键字通过自动化框架,仅需要测试人员开发表格和关键字南京工业职业技术学院软件测试软件测试45一、关键字驱动测试一、关键字驱动测试(二)关键字驱动测试框架(二)关键字驱动测试框架QTP10.0 的关键字视图的关键字视图南京工业职业技术学院软件测试软件测试46一、关键字驱动测试一、关键字驱动测试(三)关键字驱动测试的步骤(三)关键字驱动测试的步骤编辑对象库编辑对象库选择测试对象选择测试对象选择测试对象相选择测试对象相应的操作应的操作设置测试逻辑设置测试逻辑南京工业职业技术学院软件测试软件测试47二、检查点二、检查点(一)检查点的类型(一)检查点的类型检查点类型检查点类型描述描述
37、标准检查点标准检查点检查对象的属性值。检查对象的属性值。图像检查点图像检查点检查图像的属性值。检查图像的属性值。表检查点表检查点检查表中的信息。检查表中的信息。页面检查点页面检查点检查网页的特性。检查网页的特性。文本文本/文本区域检查点文本区域检查点 检查文本字符串是否显示在网页或应用程序窗口中的适当位检查文本字符串是否显示在网页或应用程序窗口中的适当位置。置。位图检查点位图检查点将网页或应用程序的某个区域捕获为位图后对其进行检查。将网页或应用程序的某个区域捕获为位图后对其进行检查。数据库检查点数据库检查点检查应用程序或网站所访问的数据库内容。检查应用程序或网站所访问的数据库内容。可访问性检查
38、点可访问性检查点对网站区域进行识别,以检查是否符合对网站区域进行识别,以检查是否符合 W3C标准。标准。XML 检查点检查点检查检查 XML 文档的数据内容。文档的数据内容。南京工业职业技术学院软件测试软件测试二、检查点二、检查点48(二)各种检查点的使用(二)各种检查点的使用 各种检查点在具体应用程序测试中的使用,在后面各种检查点在具体应用程序测试中的使用,在后面的任务实施中会结合的任务实施中会结合QTPQTP自带的飞机订票系统进行具自带的飞机订票系统进行具体的讲解体的讲解。南京工业职业技术学院软件测试软件测试49三、数据驱动测试三、数据驱动测试 所谓数据驱动测试,就是所谓数据驱动测试,就是
39、通过参数化的方式,从通过参数化的方式,从数据产生器或外部数据源读取测试数据,从而扩大测数据产生器或外部数据源读取测试数据,从而扩大测试的覆盖面,提高测试的灵活性。试的覆盖面,提高测试的灵活性。什么时候使用数据驱动测试?步骤如何?什么时候使用数据驱动测试?步骤如何?定义定义南京工业职业技术学院软件测试软件测试50三、数据驱动测试三、数据驱动测试(一)数据驱动测试的步骤(一)数据驱动测试的步骤v 参数化测试步骤的数据,绑定到数据表格的参数化测试步骤的数据,绑定到数据表格的某个字段某个字段v 编辑数据表格,在表格中编辑多行测试数据编辑数据表格,在表格中编辑多行测试数据v 设置迭代次数,选择数据行,运
40、行测试脚本设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据每次迭代从中选择一行数据南京工业职业技术学院软件测试软件测试51三、数据驱动测试三、数据驱动测试(二)(二)测试脚本参数化的方式测试脚本参数化的方式v 数据表参数化数据表参数化v 随机数参数化随机数参数化 randomnumber=RandomNumber(0,6)v Action的输入参数化的输入参数化v 环境变量参数化环境变量参数化具体演示见任务实施具体演示见任务实施南京工业职业技术学院软件测试软件测试52三、数据驱动测试三、数据驱动测试(三)(三)其他类型数据源的数据驱动测试其他类型数据源的数据驱动测试v 文本文件文
41、本文件v Excel文件文件v XML文件文件v 数据库表格数据库表格 具体的实现在后面的任务实施中详述南京工业职业技术学院软件测试软件测试53任务实施:一、实现对飞机订票系统任务实施:一、实现对飞机订票系统的关键字驱动测试的关键字驱动测试(一)编辑对象库(一)编辑对象库南京工业职业技术学院软件测试软件测试54(二)选择测试对象(二)选择测试对象v 以登陆功能为例进行讲解。以登陆功能为例进行讲解。v 编辑好对象库后,我们在关键字视图的编辑好对象库后,我们在关键字视图的Item列单击鼠标列单击鼠标左键,点选左键,点选“Login”对象,就会自动完成一个激活登陆对象,就会自动完成一个激活登陆窗体的
42、测试步骤的操作,然后我们依次选择窗体的测试步骤的操作,然后我们依次选择“Agent Name”、“Password”、“Agent Name”、“OK”三个对象,完成一个登陆测试用例的步骤。三个对象,完成一个登陆测试用例的步骤。任务实施:一、实现对飞机订票系统任务实施:一、实现对飞机订票系统的关键字驱动测试的关键字驱动测试南京工业职业技术学院软件测试软件测试55(三)选择测试对象相应的操作(三)选择测试对象相应的操作 在在“Operation”列选择其相应的操作,例如按钮列选择其相应的操作,例如按钮对象单击选择对象单击选择“Click”,文本框对象选择,文本框对象选择“Set”等。等。选择好操
43、作后,选择好操作后,QTP会自动在会自动在“Documentation”列列产生测试步骤说明产生测试步骤说明任务实施:一、实现对飞机订票系统任务实施:一、实现对飞机订票系统的关键字驱动测试的关键字驱动测试南京工业职业技术学院软件测试软件测试56(四)设置测试逻辑(四)设置测试逻辑v 在关键字视图中,支持对测试逻辑的设置,如条件判断、在关键字视图中,支持对测试逻辑的设置,如条件判断、循环等循环等以下举例说明以下举例说明 在关键字视图中,点击鼠标右键,选择菜单Insert Step|Loop Statement|ForNext,添加循环逻辑 在“Value”列中,把To后面的1改为5,让循环体内的
44、语句执行5次,Step后面的1为步长 在该循环语句后面再添加一个测试步骤,在Item列选择测试对象为“Help”按钮,在Operation列中选择操作为“Click”专家视图中可以看到对应的测试脚本代码任务实施:一、实现对飞机订票系统任务实施:一、实现对飞机订票系统的关键字驱动测试的关键字驱动测试南京工业职业技术学院软件测试软件测试57任务实施:二、实现对飞机订票系任务实施:二、实现对飞机订票系统插入各种检查点统插入各种检查点(一)添加标准检查点(一)添加标准检查点v 以以flight程序的程序的Login窗体的测试为例窗体的测试为例 选中激活Login窗体的测试步骤,单击鼠标右键,选择“In
45、sert Standard Checkpoint”在Login的属性列表中,选择“Enabled”和“text”,选择“Before current step”,单击“OK”按钮 运行脚本,如果实际运行结果与预期设定一致,可以得到测试结果为“Passed”运行脚本,可以得到如图6.20所示的测试结果。如果实际运行结果与预期设定一致,可以得到测试结果为“Passed”南京工业职业技术学院软件测试软件测试58任务实施:二、实现对飞机订票系统任务实施:二、实现对飞机订票系统插入各种检查点插入各种检查点(二)添加位图检查点(二)添加位图检查点v 以以Web版的飞机订票系版的飞机订票系统为例统为例 通过
46、菜单“Insert|CheckPoint|Bitmap CheckPoint”来选择需要作为位图检查的对象南京工业职业技术学院软件测试软件测试59(三)添加文本检查点(三)添加文本检查点 文本检查点可以检查特定的文本是否在界面上显示,文本检查点可以检查特定的文本是否在界面上显示,在录制过程中,选择菜单在录制过程中,选择菜单“Insert|Checkpoint|Text Checkpoint”,然后指然后指向界面上的文字对象,如指向向界面上的文字对象,如指向“Mercury Tours Site”主界面右边用户名输入框前面的文字主界面右边用户名输入框前面的文字“User Name”,这个检查点就
47、将检查这个检查点就将检查“User Name”是否出现在是否出现在“airlines”和和“Password”之间,之间,“OK”后,同后,同样在关键字视图中可以看到,文本检查点已经添加到测试样在关键字视图中可以看到,文本检查点已经添加到测试步骤中,运行脚本可以看到结果。步骤中,运行脚本可以看到结果。任务实施:二、实现对飞机订票系统任务实施:二、实现对飞机订票系统插入各种检查点插入各种检查点南京工业职业技术学院软件测试软件测试60任务实施:三、实现对飞机订票系任务实施:三、实现对飞机订票系统的数据驱动测试统的数据驱动测试(一)参数化测试脚本(一)参数化测试脚本v 选择选择“Agent Name
48、”所所在测试行的在测试行的“Value”列所列所在的单元格,点击单元格旁在的单元格,点击单元格旁边的边的“”按钮,在右图按钮,在右图界面中,选择界面中,选择parameter,在下拉框,在下拉框选择选择Data Table,在,在Name中输入参数名,选中输入参数名,选择择Global sheet。南京工业职业技术学院软件测试软件测试61任务实施:三、实现对飞机订票系任务实施:三、实现对飞机订票系统的数据驱动测试统的数据驱动测试(一)参数化测试脚本(一)参数化测试脚本v 点击点击“OK”后,可以在关键字视图中看到,后,可以在关键字视图中看到,“Value”值已经被参数化了,换成了值已经被参数化
49、了,换成了“DataTable(name,dtGlobalSheet)”v 选择菜单选择菜单“View|Data Table”,输入你设计的,输入你设计的“name”参数的若干值参数的若干值v 运行脚本,运行脚本,QTP会从数据表格中依次提取数据来对登录界会从数据表格中依次提取数据来对登录界面中的面中的“Agent name”输入进行参数化输入进行参数化南京工业职业技术学院软件测试软件测试62任务实施:三、实现对飞机订票系统任务实施:三、实现对飞机订票系统的数据驱动测试的数据驱动测试(二)(二)Action重用重用 对于重复使用的测试用例,可以转换成公共用例对于重复使用的测试用例,可以转换成公
50、共用例,经过参数化后,可被其他测试用例调用。,经过参数化后,可被其他测试用例调用。如如“Flight”程序中的登录模块的测试步骤是程序中的登录模块的测试步骤是执行其他测试都必须经过的,因此可将其作为一个可执行其他测试都必须经过的,因此可将其作为一个可重用的重用的Action。南京工业职业技术学院软件测试软件测试63任务实施:三、实现对飞机订票系统的数据任务实施:三、实现对飞机订票系统的数据驱动测试驱动测试(三)外部数据源的数据驱动测试(三)外部数据源的数据驱动测试v 文本文件作为数据源文本文件作为数据源v Excel文件作为数据源文件作为数据源v XML文件作为数据源文件作为数据源v 数据库表