1)准备TestCase
       - 在进行自动化之前,将测试内容进行文档化,不建议直接录制脚本
       - 在录制脚本之前设计好脚本,便于录制过程的流畅
       - 由于测试用例设计和脚本开发可能不是同一个人完成,便于团队合作
       - 便于后期的维护
       - 文档化的方式:TD或者文档
 
2)配置QTP
QTP支持不同的开发环境,在正式录制之前,需要根据被测程序的开发环境,选择合适的Add-In,并进行加载。
 
3)录制脚本
启动QTP的录制功能,按照Test Case的操作步骤描述执行,QTP自动记录每一步操作,并自动生成VBScript脚本。
 
4)修改增强脚本
刚刚录制好的脚本可能包含错误,或者没有达到预期的目的,这就需要在录制脚本的基础上,进行修改增强
- 删除录制过程中多余的以及错误的操作,以最少的脚本完成任务
- 如果前面操作的输出是后面操作的输入,则需要使用变量或者输出值来进行替换
- 不是所有的操作都可以通过录制产生的,有些需要通过手工编码实现这些功能
- 录制产生的脚本是线性的,可以加入条件、循环控制语句,实现更复杂的流程
- 对脚本进行结构化
- 加入注释,便于阅读和维护
 
5)调试脚本
       - 回放通过的脚本,不一定是正确的,也可能会包含错误
       - 在测试脚本正式使用之前,要保证其本身的正确性
       - 避免测试脚本故障和被测程序故障搅在一起,不容易定位
 
6)回放脚本
- 对于回放的错误,不要急于马上提交Bug,首先要判断是脚本本身的错误还是程序的错误,确认后再提交。
 
7)脚本维护
       - 随着工作的不断推进,脚本量会越来越多
       - 被测试程序的不断更新,也需要更新相应的测试脚本
       - 采用版本管理工具保存脚本,如CVS、VSS,可以随时获取历史版本
       - 采用统一的脚本架构
       - 采用统一的命名规范
       - 添加充分的注释,避免时间久了,自己都不能马上读懂脚本

QTP自动化测试流程的更多相关文章

  1. QTP自动化测试权威指南 连载(一)

    第一章 简介 什么是自动化测试 自动化测试是对一个已有的手工测试过程减少并尽可能排除人工干预的过程. 什么时候适合做自动化测试 下面是一组适合将手工测试自动化的考量因素: ● 测试需要经常重复. ● ...

  2. 转:透析QTP自动化测试框架SAFFRON

    1.为什么要使用框架? 框架是一组自动化测试的规范.测试脚本的基础代码,以及测试思想.惯例的集合.可用于减少冗余代码.提高代码生产率.提高代码重用性和可维护性.例如QTestWare就是QTP自动化测 ...

  3. QTP自动化测试框架课程的目标

    QTP自动化测试框架课程的目标 随着技术发展演变,qtp自动化测试工具有逐渐被其他工具和技术替换的趋势,所以我们三个POPTEST合伙人决定把qtp自动化测试的一套课程开放免费,这套qtp自动化测试课 ...

  4. 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架   QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...

  5. QTP自动化测试培训:描述编程之WebElement

    QTP自动化测试培训:描述编程之WebElement   通过描述性编程技术,来描述出来输入框: set po=browser("creationtime:=0").page(&q ...

  6. 自动化测试调查问卷送《QTP自动化测试最佳实践》

    自动化测试调查问卷送<QTP自动化测试最佳实践> http://automationqa.com/forum.php?mod=viewthread&tid=2308&fro ...

  7. QTP自动化测试框架的基础知识

    1. 什么是自动化测试框架? 假定你有一个活,需要构建许多自动化测试用例来测试这个应用程序.当你对这个应用程序完成自动化测试后,你对自己创建脚本应该有什么期望吗?你难道不想要- 脚本应该按照预期的来执 ...

  8. QTP自动化测试框架简述

    1.使用框架的原因? 框架是一组自动化测试的规范.测试脚本的基础代码,以及测试思想.惯例的集合,从而减少冗余的代码.提高代码生产率,重用性和可维护性. 2.自动化测试框架的架构 脚本层(业务组件开发) ...

  9. 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

    今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...

随机推荐

  1. Swift基础之UIButton

    //设置全局变量,将下面的替换即可    //var myButton = UIButton();    //系统生成的viewDidLoad()方法    override func viewDid ...

  2. UE4 创建自己的角色

    首先,需要在UE4中设置自己需要输入的按键,点击工具栏的Settings/ProjectSettings,找到input,在Bindings下添加自己需要的输入按键,我这里绑定了JumpBtn.Mov ...

  3. C++中const的实现细节介绍(C,C#同理)

    via:http://www.jb51.net/article/45755.htm 本篇文章主要是对C++中const的实现细节进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.什么 ...

  4. Android Bootloader LittleKernel的两篇文章

    Android 开发之 ---- bootloader (LK) LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程 ...

  5. 通过服务修改widgetUI

    public static void updateAppWidget(Context context, String displayMsg) { AppWidgetManager appWidgetM ...

  6. Developing RIA Web Applications with Oracle ADF

      Developing RIA Web Applications with Oracle ADF Purpose This tutorial shows you how to build a ric ...

  7. 嵌入式C快速翻转一个任何类型的数的二进制位

    unsigned char reverse_bits(unsigned char value) { unsigned char answer , i ; answer = 0 ; for(i = 1 ...

  8. "《算法导论》之‘线性表’":基于动态分配的数组的顺序表

    我们利用静态分配的数组来实现的顺序表的局限还是挺大的,主要在于它的容量是预先定好的,用户不能根据自己的需要来改变.如果为了后续用户能够自己调整顺序表的大小,动态地分配数组空间还是很有必要的.基于动态分 ...

  9. struts2实现ajax校验的2种方法

    共同的一点是,Action都需要将一个方法暴露出来,给前端javascript调用  javascript的代码都是一样的: Js代码   function testAjax() { var $use ...

  10. linux上搭建ftp服务器

    摘要 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行 ...