QTP之对测试用例的自动化过程的分解
第一部分:自动化一个测试用例
当你要开始自动化一个测试用例的时候,有一些重要的事情需要完成。当你完成所有这些事情的时候,测试脚本的自动化也随之完成。
在这里,我们将首先在大部分的自动化测试用例里找出所有通用的任务。
让我们用一个例子(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之对测试用例的自动化过程的分解的更多相关文章
- selenium自动化过程中如何操作Flash动画
最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...
- Python自动化测试用例设计--自动化测试用例与手工测试用例区别与联系
1. 前言 手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异 ...
- excel+requests管理测试用例接口自动化框架
背景: 某项目有多个接口,之前使用的unittest框架来管理测试用例,将每个接口的用例封装成一个py文件,接口有数据或者字段变动后,需要去每个py文件中找出变动的接口测试用例,维护起来不方便,为了便 ...
- 用webdriver+phantomjs实现无浏览器的自动化过程
环境准备 1. 安装python: 2. 安装pip: 3. 通过pip安装selenium: 4. 下载phantomJS的包并解压缩: 1. 若在Windows系统中,将下载的phantomjs文 ...
- selenium自动化过程中遇到的小问题(未完待续)
1.chrome浏览器调用不起来 代码没出错的情况下,检查下chrome浏览器的版本与chromedriver.exe的版本是否匹配;下面的表格是根据网上及官网整理的chromedriver与chro ...
- 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
- Robot Framework入门学习2 创建第一个测试用例
本文章部分内容引自以下网址,感谢作者的辛苦分享 http://www.cnblogs.com/fnng/p/3871712.html http://blog.csdn.net/tulituqi/art ...
- QTP使用技巧
1QTP基本功能的使用 QTP的基本功能包括两大部分:一部分是提供给初级用户使用的关键字视图:另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图.但是,并没有严格的区分,在实 ...
- 多测师讲解自动化_rf框架搭建_高级讲师肖sir
robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面). Wxpython pip(在线下载) . setuptools(在线安装) . 第三方 ...
随机推荐
- Oracle中的IF...THEN...ELSE判断
if...then...else是最常见的一种判断语句,他可以实现判断两种情况. 标准语法如下: if <condition_expression> then plsql_sentence ...
- Sales_item
#ifndef SALESITEM_H #define SALESITEM_H // Definition of Sales_item class and related functions goes ...
- AFNetwork作用和用法详解
AFNetwork是一个轻量级的网络请求api类库.是以NSURLConnection, NSOperation和其他方法为基础的. 下面这个例子是用来处理json请求的:NSURL *url = [ ...
- DOM生成XML文档与解析XML文档(JUNIT测试)
package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...
- Notes of the scrum meeting(10/31)
meeting time:3:00~4:30p.m.,October 30th,2013 meeting place:绿园 attendees: 顾育豪 ...
- Document.defaultView
Document.defaultView 引子 最近愚安在写一个可以将页面上的资源链接转为二维码以方便移动端浏览的chrome插件,由于dom操作并不多,而且作为插件不需要考虑跨 浏览器兼容性,所以并 ...
- bnuoj 4208 Bubble sort
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4208 [题意]:如题,求冒泡排序遍历趟数 [题解]:这题开始2B了,先模拟TLE,然后想了一下,能不 ...
- 3157: 国王奇遇记 & 3516: 国王奇遇记加强版 - BZOJ
果然我数学不行啊,题解君: http://www.cnblogs.com/zhuohan123/p/3726933.html const h=; var fac,facinv,powm,s:..]of ...
- 针对谷歌默认最小字体12px的正确解决方案 (css、html)
今天晨会,产品要求把以前12px的字体改小一点,我心想这有什么难的,就随口答应了.哪知,改css的时候,谷歌浏览器中font-size小于12px时,字体就不会再缩小了.当时我的第一反应就是会不会是其 ...
- powerdesigner使用之——从“概念模型”到“物理模型”
现实问题在计算机上的解决,需要我们从现实问题中抽象出实体模型,然后再将实体模型对应到数据库关系表中. 例如,我们在思考学生选课,这件事情上,实体模型就是“学生”和“课程”两个 此时,我们使用power ...