UFT/QTP自动化测试框架详解(ui自动化测试软件)
ccwgpt 2025-04-10 21:06 69 浏览 0 评论
前言
很多从事测试的朋友都会接触到自动化测试或要求有自动化测试的技能,自动化测试已成为测试行业发展的趋势。自动化测试的工具有很多且各有所长,UFT(QTP)是最流行的测试工具之一,因此很多公司在招聘时会把UFT(QTP)作为指定需要掌握的测试工具。很多学习过UFT的朋友都能很快掌握工具设置、录制、编写脚本、执行任务等操作,但 要真正掌握自动化测试,必须学会设计测试框架。
网上很多关于框架概念的资料,说的都是框架的作用,但就没有一个具体的例子给读者演示如何设计。本文则以具体的框架为实例,叙述整个框架的架构,如何搭建架构。讲解驱动脚本的每一行代码,并以实际的测试用例演示本框架如何使用及执行结果。本框架设计是运用于UFT12.01版本,QTP的软件不兼容。
框架概述
使用统一的驱动脚本入口
每个公司都会有多个产品,本框架可以容纳多个项目,每 个项目使用统一的驱动入口,执行时由驱动程序读取相应的数据文件和VBS脚本文件和输出测试报告。
使用对象库编程
框架使用UFT自带的对象库编程的方法进行识别对象,对象库编程比描述性编程方便、简单、高效,能真正实现脚本与对象分离,但相对移植性较差。本人推荐使用对象库编程,对于对象属性改变的问题可以使用Set 变量=对象的方法,方便日后维护。
使用VBS的Function代替脚本中的Action
UFT工具自带Call action的方法进行脚本复用,但本框架使用Function的方法代替Call action,每个Function执行一个测试步骤,通过组合多个Function可完成一个测试用例。
数据文件统一维护
所有需要用到的测试数据统一放到1个testpro和多个testdata的Excel文件中,testpro记录测试那个项目,testdata记录每个Function 需要用到的测试数据。
框架图示如下:
体系结构
模块说明
- Autotest文件夹,整个工程的最高一级目录,名称可以修改。
- driver文件夹,这个是整个框架的入口,用UFT打开driver入口程序,便能看到整个框架的代码。
- testpro文件夹,用于记录有哪些项目,是否执行。
- Testdata文件夹,用于设计测试用例。
- testScript文件夹,存放测试脚本,全部存储为vbs文件。
- Result文件夹,里面有个excel表保存测试结果。
- 除Autotest外以上文件夹名字都不能修改。
pro表格说明
- IsRun:用于设置项目是否执行,0表示不执行,1表示执行。
- ProName:填写项目的名称,项目名称必须为英文和数字的组合,本框架可容纳无限个项目。
- Runtimes:设置执行测试次数。
- Description:用于说明项目的信息,可随意填写。
testdata表格说明
在testdata文件夹里面有多个Excel文件,每个Excel文件对应一个项目, Excel的文件名必须与ProName的保持一致。
注意:运行程序时不要打开Excel文档,否则无法加载数据
- IDX:设置该条用例是否执行,1代表执行,0代表不执行
- TestName:要执行的用例名,与VBS脚本终端一个functiong 名字相对应,程序运行时,就会根据表格由上到下执行所有用例。
- param1和param2:在编写function脚本时,如果需要用到变量,可以直接应用param1和param2,直接在表格中给变量赋值。
- Expect:填写用例执行结果的期望值。
- Pass和Fail:记录用例执行成功和失败的次数。
Testscript使用说明
每个项目对应一个VBS脚本文件,如图PRO1到PRO4,且VBS文件必须与PRO的excel表的ProName保持一致。
VBS脚本编写说明
脚本开头和结尾用class PRO1,End class,使用类的思想,类里面可以包含多个function,PRO1为VBS脚本的文件名也是项目名称。
Function:一个function就是一个用例或一个动作,每个function是自动化测试工程师需要根据公司业务设计。
实例说明
Test1为PRO1项目的一个测试用例,计算param1+param2的值,在PRO表上设置执行PRO1项目2次,在testdata的PRO1表格设置执行test1,分辨设置参数param1为1,param2为2,期望值为3,执行时,就会在rusult表格生成报告,Real的真实值为3与期望值一致,那么通过次数为2次。
本文转载自:51testing
本站文章除注明转载外,均为本站原创或翻译
相关推荐
- ForkJoinPool的了解与使用(fork-join)
-
ForkJoinPool是一个强大的Java类,用于处理计算密集型任务。使用ForkJoinPool分解计算密集型任务并并行执行它们以获得更好的Java应用程序性能。它的工作原理是将任务分解为更小的子...
- Netty 时间轮源码解析(时间轮java实现)
-
定时任务在中间件和业务系统中有很多应用,比如:注册中心中定期上报状态的心跳机制。RPC框架中定期扫描请求列表移除超时请求。延迟队列提交未来时间的任务。业务系统每日凌晨跑批处理或报表任务。Java原...
- Autodesk基于Mesos的通用事件系统架构
-
【编者按】本文由AutodeskCloud软件架构师OlivierPaugam撰写,解释了如何集合Mesos、Kafka、RabbitMQ、Akka、Splunk、Librato、EC2等基础设施...
- 全局视角看技术-Java多线程演进史
-
作者:京东科技文涛全文较长共6468字,语言通俗易懂,是一篇具有大纲性质的关于多线程的梳理,作者从历史演进的角度讲了多线程相关知识体系,让你知其然知其所以然。前言2022年09月22日,JDK19发...
- 为什么应该使用Dapr来构建事件驱动的微服务?
-
微服务架构从本质上来说是分布式的。构建微服务总是会遇到极具挑战性的问题,比如说弹性服务调用、分布式事务处理、按需扩容以及严格一次(exactly-once)的消息处理。将微服务放在Kubernet...
- WEB前端开发学习流程(web前端开发简明教程)
-
相对web后端开发来说,web前端开发对大部分初学编程者比较友好,而且入门门槛低,就业范围广。是大部分转行学IT的一个首选方向。web前端开发工程师,主要进行网站浏览器的开发、优化、布局的工作。在了解...
- 《s24z 编程指南》大纲(AI 提示词)
-
由于AIGC的迅速发展,本教程《s24z编程指南》,尝试用如下方法:准备《编程指南》的大纲,按章节划分,每小节由相关知识点和文字组成。每次将一小部分文本,以提示词的形式,送入Kimi或Ch...
- 有哪些常用的Python后端开发框架?
-
以下为你介绍一些常用的Python后端开发框架,包含各自的特点、适用场景与示例代码:Flask特点:轻量级、灵活,核心代码简洁,几乎不强制开发者使用特定的工具和库,开发者可按需添加扩展。适用场景...
- 数学分析的结构(数学分析的结构方法)
-
一、基础结构层实数系统与集合论数学分析的根基建立在实数连续之上,通过集合论(如公理化集合论)定义数学对象的抽象结构。例如,实数集的完备性公理是数学分析区别于其他数学分支的关键特征。此外,点集拓扑学(如...
- 新手在学习Web前端时需要学习的内容汇总
-
Web前端开发因为入行门槛低,是很多人转行IT开发行业的首选,但想要成为一名合格的Web前端开发工程师同样要具备过硬的专业技能,而且想要学成后高薪快速的就业,过硬的技术是基本条件。那么,新手小白学习W...
- 基于 Kotlin KMP 实现 HarmonyOS 与 Android 双平台 SDK 开发实践
-
背景随着鸿蒙平台的进一步发展,大家的态度也逐渐从观望转向实际投入,越来越多的公司开始考虑将自家应用迁移到鸿蒙平台。但是这一过程并非想象中的那么简单,尤其对于已经存在很多年的大型项目来说,直接投入大量人...
- 爱奇艺 App 中台技术实践(爱奇艺 app 中台技术实践在哪)
-
本文来自爱奇艺研究员在ArchSummit全球架构师峰会上的演讲整理,将为大家分享爱奇艺打造移动中台的过程。爱奇艺移动中台的建设过程可分为组件解耦、组件定制化和平台化,未来会利用平台发现、沉淀和复...
- 软件开发|同样的功能需求,为什么有的软件公司报价高?有的低?
-
最近有个朋友问我:同样的功能需求,为什么有的公司报价高?有的公司报价低?其实,有很多创业的朋友,在寻找技术开发公司的时候,经常会遇到这个困惑,一样的功能需求,不同的公司有不同的报价,有的差别还很大,那...
- 零基础要怎么学习Web前端?Web前端学习路径分享
-
Web前端因为薪资高、入行门槛低,成为很多人转行进入IT行业的首选。对于零基础的人来说,学习之前一定要想清楚为什么而学习Web前端,给自己一个清晰的定位,摆正心态。如果还不清楚学习路线,可以参考千锋武...
- MICROCHIP/微芯 KSZ9031RNXIA 以太网芯片
-
特征o适用于IEEE802.3应用的单片10/100/1000Mbps以太网收发器oGMII/MII标准接口,3.3V/2.5V/1.8V容错I/Oo自动协商以自动选择最高链路连接速度(10/10...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)