自动化测试讲解 PPT课件
合集下载
软件自动化测试工具介绍(ppt 28页)
监视方案。 Mercury Analysis-分析测试结果。
4.5 LoadRunner 使用演示
5、软件测试方面的考试、认证
计算机软件水平考试 中级 软件评测师 计算机等级考试四级 软件测试工程师 工具认证,如HP-Mercury QAI CSTE
6、学习资料
4.3 LoadRunner的测试过程
LoadRunner的测试过程如下图所示:
4.4 LoadRunner的组成部分
LoadRunner由以下三个部分组成: Mercury Virtual User Generator(VuGen)-创建
脚本。 Mercury LoadRunner Controller-设计、运行、
功能测试工具:
(1)WinRunner 企业级的功能测试工具,通过自动录 制、检测和回放用户的应用操作,从而提高测试效率。
(2)QARun 一款自动回归测试工具,要安装QARun必 须安装.net环境,还提供与TestTrack Pro的集成。
(3)Rational Robot 属于Rational TestSuite中的一员 ,对于Visual studio 6编写的程序支持的非常好,同时 还支持Java Applet、HTML、Oracle Forms、People Tools应用程序的支持。
软件测试技术系列讲座之三
软件自动化测试工具
主讲:温艳冬
内容提纲
自动化测试概述 自动化测试工具一览 自动化工具市场占有率 LoadRunner介绍 软件测试方面的考试、认证 学习资料 结束语
1、自动化测试概述
自动化测试的优点
对程序的回归测试更方便 可以运行更多繁琐的测试 可执行一些手工测试困难或不可能进行的测试 更好地利用资源 测试具有一致性和可重复性 测试的复用性 可以让产品更快地投放市场 增加软件信任度
4.5 LoadRunner 使用演示
5、软件测试方面的考试、认证
计算机软件水平考试 中级 软件评测师 计算机等级考试四级 软件测试工程师 工具认证,如HP-Mercury QAI CSTE
6、学习资料
4.3 LoadRunner的测试过程
LoadRunner的测试过程如下图所示:
4.4 LoadRunner的组成部分
LoadRunner由以下三个部分组成: Mercury Virtual User Generator(VuGen)-创建
脚本。 Mercury LoadRunner Controller-设计、运行、
功能测试工具:
(1)WinRunner 企业级的功能测试工具,通过自动录 制、检测和回放用户的应用操作,从而提高测试效率。
(2)QARun 一款自动回归测试工具,要安装QARun必 须安装.net环境,还提供与TestTrack Pro的集成。
(3)Rational Robot 属于Rational TestSuite中的一员 ,对于Visual studio 6编写的程序支持的非常好,同时 还支持Java Applet、HTML、Oracle Forms、People Tools应用程序的支持。
软件测试技术系列讲座之三
软件自动化测试工具
主讲:温艳冬
内容提纲
自动化测试概述 自动化测试工具一览 自动化工具市场占有率 LoadRunner介绍 软件测试方面的考试、认证 学习资料 结束语
1、自动化测试概述
自动化测试的优点
对程序的回归测试更方便 可以运行更多繁琐的测试 可执行一些手工测试困难或不可能进行的测试 更好地利用资源 测试具有一致性和可重复性 测试的复用性 可以让产品更快地投放市场 增加软件信任度
自动化测试技术PPT课件
哪些能自动化?
软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维 护成本,如果变动过于频繁,维护成本太高。 项目周期足够长 若项目周期太短,或是紧急上线的新功能, 新产品是不适合去用自动化测试的。 自动化测试脚本可重复使用 若自动化脚本利用率不高,测会造成人力的 浪费。
自动化工具介绍
PHPUnit 简介 PHPUnit是一个轻量级的PHP测试框架。它 是在PHP5下面对JUnit3系列版本的完整移植, 是xUnit测试框架家族的一员(它们都基于模式先 锋Kent Beck的设计)。 类似的其他语言的还有JUNIT(java), NUNIT(c#),UNITTEST(python)以及 Rspec(Ruby).
/files/seleniumserver-standalone-2.22.0.jar
安装selenium server:只要安装了jdk1.6 或1.7 都 可以运行selenium-server,在命令行输入: java -jar selenium-server-standalone-2.22.0.jar
测试用例编写及测试过程
测试脚本的录制 用Selenium录制测试操作,并转化成PHPUNIT脚 本,保存成对应该的文件。在要检测的地方,加上适 当的Assert语句。 运行Selenium Server 服务器 在CMD窗口是运行命令: java -jar seleniumserver-standalone-2.22.0.jar
自动化测试技术分享
宋现锋 @潜龙0318来自内 容提要何为自动化?
哪些能自动化? 自动化工具介绍 测试用例编写及测试过程 编写自动化用例中应注意的问题 目前编写的自动化用例介绍
何为自动化?
自动化(Automation)是指机器设备、系统或过 程(生产、管理过程)在没有人或较少人的直接 参与下,按照人的要求,经过自动检测、信息处 理、分析判断、操纵控制,实现预期的目标的过 程。 我们测试领域中的自动化,就是“把以人为驱动的 测试行为转化为机器执行的一种过程。” 自动化测试的 7 个步骤:改进自动化测试过程,定义 需求,验证概念,支持产品的可测试性,具有可 延续性的设计,有计划的部署和面对成功的挑战。
自动化测试(PPT40页).ppt
自动化测试工具
实现了负载测试、功能测试和测试管理的几个工具。
1. 负载测试工具Load Runner Load Runner是一种适用于各种体系构架的企业级系统的
自动负载测试工具。通过模拟实际用户的操作行为和性能监测 ,帮助查找Bug。
(1)可以记录下客户端的操作,形成脚本文件。 (2)产生众多的虚拟用户,以虚拟用户的方式模拟真实 用户的操作行为,创建系统负载。
自动化测试原理和方法
3.脚本技术 脚本是一种特殊的计算机程序,包含了数据和指令。 脚本技术是围绕脚本程序的结构而进行的设计,可以实现
测试用例所要求的数据输入、操作流程和验证点。 脚本产生方法: (1)通过录制产生,然后再做修改; (2)用脚本语言编写程序。
自动化测试原理和方法
4.虚拟用户技术 通过模拟真实用户的数量和操作行为,对被测程序施加负
自动化测试工具
2. 功能测试工具Win Runner Win Runner是基于windows的自动化功能测试软件。主
要用于检测应用程序是否能够达到预期的功能,测试复杂的企 业级应用。
(1)按照预先设计,将业务处理过程录制下来,并转换 为测试脚本,支持测试脚本的编辑、扩展、执行,提供测试结 果报告。
自动化测试工具
(3)建立持续且循环的负载,定义用户的访问时间,根 据用户人数事先设定测试目标,优化测试流程。 (4)实时监测器可以在负载测试的任何时候观察到应用 系统的运行性能,显示交易性能数据和其他系统组件(应用服 务器、Web服务器、网络设备、数据库)的实时性能。 (5)收集、汇总所有测试数据,提供高级的分析报告。
(1)重新测试全部用例 ; (2)基于风险选择测试; (3)重新测试修改的部分。
自动化回归测试
自动化测试介绍 PPT课件
用。 ③ 数据配置: QTP+QC方式:每次运行时必须一个一个业务流或者执行流的配置数据; QTP+其它辅助工具的方式:辅助工具可以将本次执行的脚本用的所有参数进
行统一配置。
QTP方式、QTP+QC方式、QTP+其它辅助工具的方式 QTP+QC方式、QTP+其它辅助工具的方式的不同:
④ 执行目的的直观性: QTP+QC方式:脚本按照一定顺序组成的业务流或者执行流,不能快速直观
自动化测试的优势
4 .通过自动化测试发现系统的隐患,保证了系统上线后的稳定运行,避免了由于系 统缺陷造成的损失。
成本
成本
开
升级
发
运维
阶
阶段
段
手工测试
时 间
广州南天
开
升级
时
发
运维
间
阶
阶段
段
自动化测试
自动化测试的优势
5 .其他优势:
✓ 创建优良可靠的测试过程,减少人为错误; ✓ 可以运行更多更繁琐的测试; ✓ 可以执行一些手工测试困难或不可能进行的测试; ✓ 更好的利用资源; ✓ 测试具有一致性和重复性; ✓ 测试脚本的重用性;
测试耗时图
140
120
100
80
时间
60
40
20
0
0
300
功能点
350
手工测试
自动化测试
400
自动化测试的优势
3.增强测试的覆盖率,从而提高产品质量,降低潜在风险
90% 88% 86% 84% 82% 80% 78% 76% 74% 72% 70%
开发中
上线前
手工测试
上线后变更1
行统一配置。
QTP方式、QTP+QC方式、QTP+其它辅助工具的方式 QTP+QC方式、QTP+其它辅助工具的方式的不同:
④ 执行目的的直观性: QTP+QC方式:脚本按照一定顺序组成的业务流或者执行流,不能快速直观
自动化测试的优势
4 .通过自动化测试发现系统的隐患,保证了系统上线后的稳定运行,避免了由于系 统缺陷造成的损失。
成本
成本
开
升级
发
运维
阶
阶段
段
手工测试
时 间
广州南天
开
升级
时
发
运维
间
阶
阶段
段
自动化测试
自动化测试的优势
5 .其他优势:
✓ 创建优良可靠的测试过程,减少人为错误; ✓ 可以运行更多更繁琐的测试; ✓ 可以执行一些手工测试困难或不可能进行的测试; ✓ 更好的利用资源; ✓ 测试具有一致性和重复性; ✓ 测试脚本的重用性;
测试耗时图
140
120
100
80
时间
60
40
20
0
0
300
功能点
350
手工测试
自动化测试
400
自动化测试的优势
3.增强测试的覆盖率,从而提高产品质量,降低潜在风险
90% 88% 86% 84% 82% 80% 78% 76% 74% 72% 70%
开发中
上线前
手工测试
上线后变更1
自动化测试工具介绍 ppt课件
LoadRunner 提供下列联机监视器:“运行时”监 视器显示参与方案的 Vuser 的数目和状态,以及 Vuser 所生成的错误数量和类型。此外还提供用 户定义的数据点图,其中显示 Vuser 脚本中的用 户定义点的实时值
23
ppt
联机监视
默认情况下, LoadRunner 的“运行”视图中将 显示四个图:“正在运行的Vuser”、“事务响应 时间”、“每秒点击次数”和“Windows 资源”。 通过单击图树视图中的其他图并将其拖至图视图 区域,可以显示这些图。或者,可以使用“打开 新图”对话框打开新的图
操作步骤:
右键单击图并选择“打开新图”。将打开“打开新图” 对话框。
单击左窗格中的“+”号以展开图树,并选择图。可以 在“图描述”框中查看该图的描述。
单击“打开图”该图将显示在图视图区域中
24
ppt
合并图
通过 LoadRunner 可以将同一方案中的两个图的 结果合并到一个图中。通过合并,可以一次比较 几个不同的度量。叠加共用同一X 轴的两个图的 内容时,合并图左侧的 Y 轴显示当前图的值。右 侧的 Y 轴显示合并图的值。
16
ppt
创建手动方案
通过创建并指定脚本、负载生成器和每个组中包 括的Vuser数,可以生成手动方案。也可通过“百 分比模式”定义要在方案中使用的Vuser的总数, 并为每个脚本分配负载生成器和占总数一定百分 比的Vuser。
运行场景描述在测试活动中发生的各种事件。一 个运行场景包括一个运行虚拟用户活动的Load Generator机器列表,一个测试脚本的列表以及大 量的虚拟用户和虚拟用户组。可以选择下列两种 方法之一来创建方案:“手动方案”或“面向目 标的方案”。在面向目标的方案中,可以定义通 过测试要实现的目标, LoadRunner 将根据这些 目标自动生成方案。
23
ppt
联机监视
默认情况下, LoadRunner 的“运行”视图中将 显示四个图:“正在运行的Vuser”、“事务响应 时间”、“每秒点击次数”和“Windows 资源”。 通过单击图树视图中的其他图并将其拖至图视图 区域,可以显示这些图。或者,可以使用“打开 新图”对话框打开新的图
操作步骤:
右键单击图并选择“打开新图”。将打开“打开新图” 对话框。
单击左窗格中的“+”号以展开图树,并选择图。可以 在“图描述”框中查看该图的描述。
单击“打开图”该图将显示在图视图区域中
24
ppt
合并图
通过 LoadRunner 可以将同一方案中的两个图的 结果合并到一个图中。通过合并,可以一次比较 几个不同的度量。叠加共用同一X 轴的两个图的 内容时,合并图左侧的 Y 轴显示当前图的值。右 侧的 Y 轴显示合并图的值。
16
ppt
创建手动方案
通过创建并指定脚本、负载生成器和每个组中包 括的Vuser数,可以生成手动方案。也可通过“百 分比模式”定义要在方案中使用的Vuser的总数, 并为每个脚本分配负载生成器和占总数一定百分 比的Vuser。
运行场景描述在测试活动中发生的各种事件。一 个运行场景包括一个运行虚拟用户活动的Load Generator机器列表,一个测试脚本的列表以及大 量的虚拟用户和虚拟用户组。可以选择下列两种 方法之一来创建方案:“手动方案”或“面向目 标的方案”。在面向目标的方案中,可以定义通 过测试要实现的目标, LoadRunner 将根据这些 目标自动生成方案。
自动化测试PPT课件
– 在分析时对代码进行语法扫描,找出不符合编码规 范的地方
– 根据某种质量模型评价代码质量 – 生成系统的调用关系图等
.
15
代码分析—白盒
• 常用技术
– Syntax analysis – Parsing – Control flow analysis – Data flow analysis – Constraint based analysis – Abstract interpretation – Type-effect system – Symbolic execution
• 兼容性
是否允许测试用例为不同的测试目标而以不同方式组合
• 可用性
定制或更改测试用例是否容易,使用是否容易
• 健壮性
是否可以处理意外情况而不退出或终止
• 可移植性
在不同环境中运行测试的能力
.
13
C. 自动化测试的原理和方法
• 测试自动化实现的基础
– 可以通过设计的特殊程序模拟测试人员对计算机的操作 过程、操作行为,或者类似于编译系统那样对计算机程 序进行检查。
• 优秀自动化测试体系的七个属性
–应根据测试目标,有针对性地提高自己关注的属性,实 施符合需要的自动化测试体系
• 高效的自动化测试体系源于好的测试软件
–应根据需要和能力决定自主开发或选购适合的测试工具
.
11
优秀自动化测试体系的七个属性
• 可维护性
是否很容易使测试更新跟上软件升级的步伐 –自动化测试的维护工作量过大可能导致整个测试自动
.
16
控制流图
void m() throws Exception{ s1; if(s2) throw new Exception();
– 根据某种质量模型评价代码质量 – 生成系统的调用关系图等
.
15
代码分析—白盒
• 常用技术
– Syntax analysis – Parsing – Control flow analysis – Data flow analysis – Constraint based analysis – Abstract interpretation – Type-effect system – Symbolic execution
• 兼容性
是否允许测试用例为不同的测试目标而以不同方式组合
• 可用性
定制或更改测试用例是否容易,使用是否容易
• 健壮性
是否可以处理意外情况而不退出或终止
• 可移植性
在不同环境中运行测试的能力
.
13
C. 自动化测试的原理和方法
• 测试自动化实现的基础
– 可以通过设计的特殊程序模拟测试人员对计算机的操作 过程、操作行为,或者类似于编译系统那样对计算机程 序进行检查。
• 优秀自动化测试体系的七个属性
–应根据测试目标,有针对性地提高自己关注的属性,实 施符合需要的自动化测试体系
• 高效的自动化测试体系源于好的测试软件
–应根据需要和能力决定自主开发或选购适合的测试工具
.
11
优秀自动化测试体系的七个属性
• 可维护性
是否很容易使测试更新跟上软件升级的步伐 –自动化测试的维护工作量过大可能导致整个测试自动
.
16
控制流图
void m() throws Exception{ s1; if(s2) throw new Exception();
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
一、简述自动化测试框架
• 也许很多人印象里的自动化测试框架就是一个能够进 行自动化测试的程序似的。其实这不全面,真正的自 动化测试框架可以不是一个程序,它仅仅是一种思想 和方法的集合,说白了,就是一个架构,大家应该都 知道操作系统其实也是一个架构吧,你可以把其理解 成一个基础的自动化测试框架为一个简单的操作系统, 它定义了几层架构,定义了各层互相通信的方式。通 过这个架构我们才能在上面进行拓展我们的测试对象 (核心体)、测试库(链接库)、测试用例集(各个 windows进程)、测试用例(线程),而其之间的通 过参数的传递进行通信(即相当于系统中的消息传 递)。
重要性不言而喻; • 集成测试在很多情况下非常适合使用自动化的手段去运行,最明显的例子是rails里的integration test;
(unit test:就是独立测试每个功能块的功能.integration test:是测试那些有相互联系的功能块之间的 联系, 和共同运行的结果.system test: 测试整个系统,所有的功能块都要考虑.) • 当单元测试和集成测试都没做好,甚至是没有做的情况下,UI级的自动化测试可以扮演救火队员的 角色,尽管成本很高,但是可维护的UI测试代码是回归测试的福音,也是提高测试生产力的重要手 段; • 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低, 而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚 信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的 代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。 那么自动化测试如何去学习呢?这里给出一个很平滑的线路图。 • 学习一门脚本语言,ruby python or javascript。当然,如果你信仰优雅,追求美感的话,你可以学 习ruby(本框架使用的语言) • 学习语言的过程是漫长而枯燥的,你可以通过使用selenium webdriver api来更加有效率的学习。在 学会自动化测试的同时也搞定了一门语言,而且每一步都很有成就感。
那么就可以将用户名输入、密码输入、确定登录、取消登录四个操作分别封装在四个不同的模块中。测试时,只需调用其模块即 可。这样的话,当一个模块有变化,你只需单独维护那个模块即可,也可以根据模块的不同组合成不同的测试用例。 2、所谓测试库思想,就是模块化思想的升华,其为应用程序的测试创造了库文件(可以是APIs、DLLs等),这些库文件为一系列 函数的集合。其与模块化思想不同的是,其拓展了接口思想,即可以通过接口去传递参数,而不是一个封死的模块,可以说是一 个多了一个“门”的交互型模块。 例如:还是以上那个测试用例,只是将用户名输入、密码输入、确定登录、取消登录封装成一个库,这个库含有一个函数Login, 这个函数Login接收两个参数“用户名、密码”,对输入不同的用户名和密码可以进行不同的测试用例。也可以另外一个函数Cancle。 3、所谓数据驱动思想,众说纷纭,很多人都觉仅仅依靠用EXCLE表进行不同数据的读取仅是一个高级的参数化,其实怎么理解并 不重要,关键是其思想能够好的应用到你的框架中。而我的理解就是变量不变,数据驱动结果,不同的数据导致了不同的结果的 产生。而对于数据的导入,可以通过很多方式,例如:EXCLE表、XML(用在WEB中)、数据库(DB)、CSV文件、TXT等都可以。 4、所谓关键字思想,这个思想,我曾经一直思考,它与面向对象的关系,与交互模块化思想的区别。后来个人理解,其实关键字 驱动就是一种面向对象的思想,例如:QTP、RFT中,对象可以为一个数据或者一个关键字,对对象的抓取,可以将其测试对象封 装为一个关键字(即可以将gui元素封装成了一个个关键字),这样可以对其关键对象进行各种操作了,不同的对象可以驱动不同 的测试流向与结果。 简单的应用的方式可以用一个EXCEL表,里面包括“对象类型”“对象名称”“对象操作名称”“判断方式”“预期结果”。这样的话,可以通 过导入不同的对象类型和名称、不同的对象操作来构建成了一个测试用例表了。
• 而自动化测试发展也有一段时间了,为什么到现在虽见其火热, 但难见其规模,关键是大家对其的定位,很多公司以及很多人 都知道做好自动化测试不简简单单的靠一个工具,而更需要一 个框架,但其总是对“自动化测试框架”缺乏清晰的定位,很容 易将其定位成了一个固定的框架,其实个人理解不然,自动化 测试框架不是一个模式,而是一系列思想的集合,是将各种自 动化测试框架思想集合应用去搭建成的一个分层组织。
3
自动化框架思想与构建
4
序言
• 也许到现在大家对所谓的“自动化测试框架”仍然觉得是一种神 秘的东西,仍然觉得其与各位很远;其实不然,“自动化测试框 架”从理念来说,并不复杂,但其之所以神秘,是因为其运用起 来很是复杂,每个公司,每个部门其产品线,其运作流程都是 不同的,所以就导致了在想运用“自动化测试框架”去完成自动 化测试时产生了很多不定因素,导致了很多自动化测试项目的 失败,让人对“自动化测试框架”开始敬而远之。
自动化测试讲解
整理自动化测试中基本概念与思想。着重讲解在自动化 测试框架下编写测试用例及测试计划的具体方法。
---李春毅2017-08-21
1Leabharlann 自动化测试的概念及难点• 自动化测试是一个很广义的概念,一般说来所有能替 代人工测试的方式都属于自动化测试。
• 自动化测试是很难的。自动化测试的工具很多情况下 只是一个半成品,比如selenium webdriver,你需要花 很多时间去使用代码编写用例,并且维护这些用例, 这一过程是漫长而艰辛的,这个过程非常痛苦,每天 的工作内容好像是自虐,而且自虐一段时间后信心基 本崩溃,从此谈自动化色变,把所以的错归结于自动 化测试策略与技术,而不从本身去找问题。
• 不过自动化测试的实践者往往是更加幸运的。最简单 的例子是自动化测试人员则可以利用自己掌握的语言 知识与代码知识自己创造工具,说实在的,这是一件 很有成就感的事情。
2
自动化测试的意义
自动化测试很难,那么我们为什么要坚持自动化呢? • 单元测试是保证代码质量最基本也是最根本的途径,单元测试是自动化测试的一种,因此自动化的
6
二、自动化测试框架思想
接触过自动化测试的,一定不会对以下几种 “自动化测试框架思想”陌生吧。 • 模块化思想 • 库思想 • 数据驱动思想 • 关键字驱动思想 很多人都将以上定义为“框架”,而我却觉得 它们都只是代表了一种自动化测试的思想, 不能以纯粹的框架定义。
7
首先,我们来看看自动化测试的一个发展,就能更加明白这些思想的真谛了。 a)第一代自动化测试,即自动化测试思想刚开始诞生时,依靠的是传统的“录制-回放”技术,这种技术与现在的工具的“录制-回放” 思想不一样,其其实就是一个“模拟”的过程,即模拟你对PC的操作而形成的,其基于你对键盘的输入与对鼠标的操作,原理与按键 精灵等类似,这种机制对环境的依赖性太强,对变化性太过于敏感,因此不可能发展成一种规模。 b)第二代自动化测试,即脚本化的自动化测试,利用脚本进行结构化的自动化测试,此可以应用于CLI与API的自动化测试,在其 就开始集成了模块化与库思想。 c)第三代自动化测试,开始产生了各种自动化测试思想,包括数据驱动与关键字驱动思想,其伴随着对象化思想的产生,而且也 造就了现在一系列的自动化测试软件,其实其中都集成了这些思想,从这时候开始,自动化就开始实现了一定的规模,开始运用 在各个行业,并且发展趋势越来越快。 现在将一一根据自己的个人理解来介绍这些“自动化测试框架思想”: 1、所谓模块化思想,就是将一个测试用例中的几个不同的测试点拆分并且将其单个点的测试步骤进行了封装,形成了一个模块。 例如:一个测试用例要对一个登录程序进行测试,其中包括:用户名输入、密码输入、以及确定登录;
一、简述自动化测试框架
• 也许很多人印象里的自动化测试框架就是一个能够进 行自动化测试的程序似的。其实这不全面,真正的自 动化测试框架可以不是一个程序,它仅仅是一种思想 和方法的集合,说白了,就是一个架构,大家应该都 知道操作系统其实也是一个架构吧,你可以把其理解 成一个基础的自动化测试框架为一个简单的操作系统, 它定义了几层架构,定义了各层互相通信的方式。通 过这个架构我们才能在上面进行拓展我们的测试对象 (核心体)、测试库(链接库)、测试用例集(各个 windows进程)、测试用例(线程),而其之间的通 过参数的传递进行通信(即相当于系统中的消息传 递)。
重要性不言而喻; • 集成测试在很多情况下非常适合使用自动化的手段去运行,最明显的例子是rails里的integration test;
(unit test:就是独立测试每个功能块的功能.integration test:是测试那些有相互联系的功能块之间的 联系, 和共同运行的结果.system test: 测试整个系统,所有的功能块都要考虑.) • 当单元测试和集成测试都没做好,甚至是没有做的情况下,UI级的自动化测试可以扮演救火队员的 角色,尽管成本很高,但是可维护的UI测试代码是回归测试的福音,也是提高测试生产力的重要手 段; • 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低, 而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚 信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的 代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。 那么自动化测试如何去学习呢?这里给出一个很平滑的线路图。 • 学习一门脚本语言,ruby python or javascript。当然,如果你信仰优雅,追求美感的话,你可以学 习ruby(本框架使用的语言) • 学习语言的过程是漫长而枯燥的,你可以通过使用selenium webdriver api来更加有效率的学习。在 学会自动化测试的同时也搞定了一门语言,而且每一步都很有成就感。
那么就可以将用户名输入、密码输入、确定登录、取消登录四个操作分别封装在四个不同的模块中。测试时,只需调用其模块即 可。这样的话,当一个模块有变化,你只需单独维护那个模块即可,也可以根据模块的不同组合成不同的测试用例。 2、所谓测试库思想,就是模块化思想的升华,其为应用程序的测试创造了库文件(可以是APIs、DLLs等),这些库文件为一系列 函数的集合。其与模块化思想不同的是,其拓展了接口思想,即可以通过接口去传递参数,而不是一个封死的模块,可以说是一 个多了一个“门”的交互型模块。 例如:还是以上那个测试用例,只是将用户名输入、密码输入、确定登录、取消登录封装成一个库,这个库含有一个函数Login, 这个函数Login接收两个参数“用户名、密码”,对输入不同的用户名和密码可以进行不同的测试用例。也可以另外一个函数Cancle。 3、所谓数据驱动思想,众说纷纭,很多人都觉仅仅依靠用EXCLE表进行不同数据的读取仅是一个高级的参数化,其实怎么理解并 不重要,关键是其思想能够好的应用到你的框架中。而我的理解就是变量不变,数据驱动结果,不同的数据导致了不同的结果的 产生。而对于数据的导入,可以通过很多方式,例如:EXCLE表、XML(用在WEB中)、数据库(DB)、CSV文件、TXT等都可以。 4、所谓关键字思想,这个思想,我曾经一直思考,它与面向对象的关系,与交互模块化思想的区别。后来个人理解,其实关键字 驱动就是一种面向对象的思想,例如:QTP、RFT中,对象可以为一个数据或者一个关键字,对对象的抓取,可以将其测试对象封 装为一个关键字(即可以将gui元素封装成了一个个关键字),这样可以对其关键对象进行各种操作了,不同的对象可以驱动不同 的测试流向与结果。 简单的应用的方式可以用一个EXCEL表,里面包括“对象类型”“对象名称”“对象操作名称”“判断方式”“预期结果”。这样的话,可以通 过导入不同的对象类型和名称、不同的对象操作来构建成了一个测试用例表了。
• 而自动化测试发展也有一段时间了,为什么到现在虽见其火热, 但难见其规模,关键是大家对其的定位,很多公司以及很多人 都知道做好自动化测试不简简单单的靠一个工具,而更需要一 个框架,但其总是对“自动化测试框架”缺乏清晰的定位,很容 易将其定位成了一个固定的框架,其实个人理解不然,自动化 测试框架不是一个模式,而是一系列思想的集合,是将各种自 动化测试框架思想集合应用去搭建成的一个分层组织。
3
自动化框架思想与构建
4
序言
• 也许到现在大家对所谓的“自动化测试框架”仍然觉得是一种神 秘的东西,仍然觉得其与各位很远;其实不然,“自动化测试框 架”从理念来说,并不复杂,但其之所以神秘,是因为其运用起 来很是复杂,每个公司,每个部门其产品线,其运作流程都是 不同的,所以就导致了在想运用“自动化测试框架”去完成自动 化测试时产生了很多不定因素,导致了很多自动化测试项目的 失败,让人对“自动化测试框架”开始敬而远之。
自动化测试讲解
整理自动化测试中基本概念与思想。着重讲解在自动化 测试框架下编写测试用例及测试计划的具体方法。
---李春毅2017-08-21
1Leabharlann 自动化测试的概念及难点• 自动化测试是一个很广义的概念,一般说来所有能替 代人工测试的方式都属于自动化测试。
• 自动化测试是很难的。自动化测试的工具很多情况下 只是一个半成品,比如selenium webdriver,你需要花 很多时间去使用代码编写用例,并且维护这些用例, 这一过程是漫长而艰辛的,这个过程非常痛苦,每天 的工作内容好像是自虐,而且自虐一段时间后信心基 本崩溃,从此谈自动化色变,把所以的错归结于自动 化测试策略与技术,而不从本身去找问题。
• 不过自动化测试的实践者往往是更加幸运的。最简单 的例子是自动化测试人员则可以利用自己掌握的语言 知识与代码知识自己创造工具,说实在的,这是一件 很有成就感的事情。
2
自动化测试的意义
自动化测试很难,那么我们为什么要坚持自动化呢? • 单元测试是保证代码质量最基本也是最根本的途径,单元测试是自动化测试的一种,因此自动化的
6
二、自动化测试框架思想
接触过自动化测试的,一定不会对以下几种 “自动化测试框架思想”陌生吧。 • 模块化思想 • 库思想 • 数据驱动思想 • 关键字驱动思想 很多人都将以上定义为“框架”,而我却觉得 它们都只是代表了一种自动化测试的思想, 不能以纯粹的框架定义。
7
首先,我们来看看自动化测试的一个发展,就能更加明白这些思想的真谛了。 a)第一代自动化测试,即自动化测试思想刚开始诞生时,依靠的是传统的“录制-回放”技术,这种技术与现在的工具的“录制-回放” 思想不一样,其其实就是一个“模拟”的过程,即模拟你对PC的操作而形成的,其基于你对键盘的输入与对鼠标的操作,原理与按键 精灵等类似,这种机制对环境的依赖性太强,对变化性太过于敏感,因此不可能发展成一种规模。 b)第二代自动化测试,即脚本化的自动化测试,利用脚本进行结构化的自动化测试,此可以应用于CLI与API的自动化测试,在其 就开始集成了模块化与库思想。 c)第三代自动化测试,开始产生了各种自动化测试思想,包括数据驱动与关键字驱动思想,其伴随着对象化思想的产生,而且也 造就了现在一系列的自动化测试软件,其实其中都集成了这些思想,从这时候开始,自动化就开始实现了一定的规模,开始运用 在各个行业,并且发展趋势越来越快。 现在将一一根据自己的个人理解来介绍这些“自动化测试框架思想”: 1、所谓模块化思想,就是将一个测试用例中的几个不同的测试点拆分并且将其单个点的测试步骤进行了封装,形成了一个模块。 例如:一个测试用例要对一个登录程序进行测试,其中包括:用户名输入、密码输入、以及确定登录;