第一部分:自动化一个测试用例

当你要开始自动化一个测试用例的时候,有一些重要的事情需要完成。当你完成所有这些事情的时候,测试脚本的自动化也随之完成。

在这里,我们将首先在大部分的自动化测试用例里找出所有通用的任务。

让我们用一个例子(GmailLogin)来理解前面所说的内容

为了自动化Gmail Login,你需要写一些代码来做以下的事情:

  • 打开Gmail Url
  • 输入正确的用户名和密码
  • 点击登录按钮

通过下面的图让我们更加详细的理解这一点:

任务1 - 识别对象

  • 在你对任何对象做操作之前,你需要唯一地识别这个对象。比如,在你输入Email之前,你应该知道在Gmail Login界面上的2个输入框那个是Email。一旦你正确的识别出email,你就可以在Email里输入正确的数据
  • 每个控件都有它自己的唯一属性集,用它们,在同一个页面你就可以与其它的控件做区分。例如,Gmail的的登录按钮包含了文本'Sign in',用这个文本就可以明显与其它的按钮做出区分

  • 因此,识别一个对象,你要找出这个对象的唯一识别属性

任务2 - 在对象上执行操作

 

  • 一旦你唯一的识别一个对象,那么下一步将是对这个对象的一些操作
  • 你所执行的操作依赖对象的类型,不同类型的对象包含不同的操作
  • 比如:对于按钮和链接,你可以做点击操作。对于一个输入框,你能执行Set或者Type操作。类似的,对于每个对象都有自己的操作集合

任务3 - 数据处理

  • 数据处理也是在对象上执行操作的一部分
  • 对于像输入框的控件,你需要执行输入一些数据的操作

任务4 - 合并所有单独的操作

  • 为了创建一个测试脚本,你需要合并单独的操作在一起,然后执行它们
  • 比如:Gmail的登录部分将有以下的操作
    • op1: 打开Gmail URL
    • op2: 输入用户名
    • op3: 输入密码
    • op4: 点击登录按钮
  • 您能以Action或者Function的形式合并所有单独的操作
  • 因此一个Action或者Function是一个操作集合,这些操作集合合并成一个业务逻辑流(比如Login, Logout, Search)

任务5 - 重用和不重用的函数

  • 在你的测试脚本里有一些函数,一些是只能用一次,而其他的函数可以用多次
  • 只能用一次的Actions是不可重用的Actions,可以用多次的Actions是可重用的Actions
  • 例子:考虑以下的3个测试用例

  • 上图,你注意到函数Gmail_Login和Gmail_Logout是被用了多次。因此,这些都是可重用的函数,其它都是非可重用的函数。

一个简单测试脚本的结构

以上我们已经列出了你需要执行测试脚本的通用任务

  • 识别唯一的对象
  • 在对象上执行操作
  • 只要需要就要执行数据处理操作
  • 创建重用和非重用的的Action(Function)

第二部分:QTP怎样自动化测试用例

  • 在第一部分,你看到为了创建一个测试脚本你需要完成的通用任务
  • 在这个部分,你将看到QTP怎么样协助我们来完成这些任务
  • QTP有不同的功能和机制来帮助你完成这些任务
  • 让我们看下每个任务以及对应QTP的功能

识别和存储对象

QTP提供一个唯一的机制,使用它,你能找出对象的唯一识别属性。这个机制叫做Object Spy。QTP也提供一个叫做Object Repository的仓库,可以存储一些对象以及他们的属性

在对象上执行操作

QTP有一系列预定义函数库,他们包含了不同对象的相关所有的操作。当你写一个对象在你的脚本里,QTP也提供了智能提示,它可以自动展示与这个对象相关的所有函数和属性

执行数据处理操作

QTP有自己内建的机制,叫做DataTable, 你在这里保存测试数据,稍后在测试脚本里使用它。QTP提供它自己的集合函数,使用它们就可以从DataTable里解析数据

即使你的数据存储在外部文件里,比如Excel或者XML文件,QTP提供许多方法,使用它们你就可以从外部数据源里获取到数据

存储重用和不重用的代码

QTP也提供许多方法,你能用这些方法来存储重用和非重用的的代码。这些机制是:

  • Action:Action是你保存代码最通用的方法之一。你能保存重用和不重用的代码在Actions里
  • Function Library: 函数库是又一个很流行的方法,你几乎可以在所有的QTP项目里的使用它。函数库主要用来存储可重用的代码
  • Business/Scripted Components: 尽管很少用,这个也是你可以存储代码的地方

总结:

  • 为了写测试脚本,你需要知道你要做的一些通用任务是:

    • 识别和存储对象
    • 在对象上执行操作
    • 在脚本里处理测试数据
    • 合并所有的操作形成重用&非重用的动作
  • 你也知道QTP怎么用它的一系列功能来帮助你创建测试脚本:

    • Object Spy和对象库
    • 内建的函数库
    • DataTable和相关的方法
    • Actions,函数库和组件

QTP之对测试用例的自动化过程的分解的更多相关文章

  1. selenium自动化过程中如何操作Flash动画

    最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...

  2. Python自动化测试用例设计--自动化测试用例与手工测试用例区别与联系

    1. 前言 手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异 ...

  3. excel+requests管理测试用例接口自动化框架

    背景: 某项目有多个接口,之前使用的unittest框架来管理测试用例,将每个接口的用例封装成一个py文件,接口有数据或者字段变动后,需要去每个py文件中找出变动的接口测试用例,维护起来不方便,为了便 ...

  4. 用webdriver+phantomjs实现无浏览器的自动化过程

    环境准备 1. 安装python: 2. 安装pip: 3. 通过pip安装selenium: 4. 下载phantomJS的包并解压缩: 1. 若在Windows系统中,将下载的phantomjs文 ...

  5. selenium自动化过程中遇到的小问题(未完待续)

    1.chrome浏览器调用不起来 代码没出错的情况下,检查下chrome浏览器的版本与chromedriver.exe的版本是否匹配;下面的表格是根据网上及官网整理的chromedriver与chro ...

  6. 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

  7. Robot Framework入门学习2 创建第一个测试用例

    本文章部分内容引自以下网址,感谢作者的辛苦分享 http://www.cnblogs.com/fnng/p/3871712.html http://blog.csdn.net/tulituqi/art ...

  8. QTP使用技巧

    1QTP基本功能的使用 QTP的基本功能包括两大部分:一部分是提供给初级用户使用的关键字视图:另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图.但是,并没有严格的区分,在实 ...

  9. 多测师讲解自动化_rf框架搭建_高级讲师肖sir

    robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面).  Wxpython  pip(在线下载) . setuptools(在线安装) . 第三方 ...

随机推荐

  1. Array和ArrayList的异同点【转】

    相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只 ...

  2. 关于使用视图进行分页时出现当前记录集不支持书签的错误解决方法及原因(asp)

    一般在使用视图进行查询时,视图中意般都关联了两个或者更多个表,一般在这种情况下才会使用视图,但是但我在使用视图来查询数据时没有问题,但是一旦在分页中使用到视图进行查询就会出现错误提示如下: ADODB ...

  3. DC-EPC小结

    今晚上修完了最后2个学时的EPC(课程主页),这意味着本学期的DC和共20个学时的EPC到此结束,这有可能是我人生中最后一次上英语课. Tom是我DC课的老师,EPC起于Tom和Micheal的Deb ...

  4. linux驱动路径

    1. 按键驱动 \drivers\input\keyboard\utu2440_buttons.c 2. LED驱动 \drivers\char\utu2440-led.c 3. DM9000网卡驱动 ...

  5. Reactor模式

    对象行为类的设计模式,对同步事件分拣和派发.别名Dispatcher(分发器) Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I ...

  6. VBS基础篇 - Dictionary对象

    Dictionary是存储数据键和项目对的对象,其主要属性有Count.Item.Key,主要方法有Add.Exists.Items.Keys.Remove.RemoveAll. '建立字典 Dim ...

  7. UIScrollView显示超出屏幕大小的内容

    1:UIScrollView在初始化的时候可以指定frame,它的frame和其他控件不太一样的地方是: 它的frame指的的“可视大小”,也就是我们指定多大的frame来看一张图片,当然最大就是屏幕 ...

  8. 如何利用OpenCV自带的级联分类器训练程序训练分类器

    介绍 使用级联分类器工作包括两个阶段:训练和检测. 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍.当前的指南描述了如何训练分类器:准备训练数 ...

  9. WEB前端常用的测试工具

    一.QUnit 前端测试工具 QUnit是一个强大的JavaScript单元测试框架,该框架是由jQuery团队的成员所开发,并且是jQuery的官方测试套件.Qunit是Jquery的单元测试框架, ...

  10. CF Gym100548 K Last Defence 解题报告

    先特判掉特殊情况: $a=b,Ans=2$ $ab=0,a+b>0,Ans=2$ $a=b=0,Ans=1$ 考虑剩下的非特殊情况.记$Solve(a,b)$为数列中除了$a,b$外的不同的数的 ...