网站首页 > 博客文章 正文
前言
很多从事测试的朋友都会接触到自动化测试或要求有自动化测试的技能,自动化测试已成为测试行业发展的趋势。自动化测试的工具有很多且各有所长,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
本站文章除注明转载外,均为本站原创或翻译
猜你喜欢
- 2025-06-09 详解RTP协议之H264封包和解包实战
- 2025-06-09 Qt开发经验小技巧146-150(qt开发项目)
- 2025-06-09 Qt Concurrent的使用(qt线程使用)
- 2025-06-09 Qt编写全能播放组件(支持ffmpeg2/3/4/5/6/Qt4/5/6)
- 2025-06-09 「Qt入门第24篇」 数据库(四)SQL查询模型QSqlQueryModel
- 2025-06-09 C++解析头文件-Qt自动生成信号声明
- 2025-06-09 这个C++ Qt 文件传输方案性能飙升300%,GitHub冲上热榜
- 2025-06-09 Qt之QTableview显示及单元格内容获取
- 2025-06-09 Qt编程进阶(25):Qt对Excel的基本读写操作
- 2025-06-09 Qt:QFile类(qt中的类是什么)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)