一个关于QTP自带Flight教学软件的自动化测试框架
A.文件介绍:driver.vbs:框架驱动
libs\case.vbs:用于读取测试用例
libs\common.vbs:框架所用到的函数库
libs\log.vbs:用于写日志
libs\param.vbs:用于执行一个测试用例时的用例所有数据
libs\rpt.vbs:用于生成测试报告
libs\script.vbs:框架中的所有组件函数
cases\Flight.xlsx:测试用例
logs:保存日志的目录,每个月保存同一个日志我呢见
reports:保存测试报告的目录,每一分钟保存一个测试报告文件
FlightFrameWork:框架的QTP脚本
FlightFrameWork\flight.tsr:QTP脚本所调用的扩展对象库文件,QTP脚本没有自己的对象库
B.Flight.xlsx编写要求:第6点要特别注意
1.因case.vbs文件中OpenCase方法写死,用例页面的sheet必须叫"Case",函数页面的sheet必须叫"Function"
2.用例页面中,用例编号不能重复
3.用例页面中,是否测试中只能打勾表示本用例需要测试,其他都表示不需要
4.用例页面中,组件列表中是本测试用例依次调用函数页面中函数的行号,如有多个用"/"连接
5.用例页面中,输入参数的编写参照说明C
6.函数页面中,已经做好的内容行号不能调整,因为用例页面中每个用例调用的组件函数是使用行号来表示,如果函数页面中行号调整会导致用例调用函数全部错误
7.函数页面中,组件必须和script.vbs文件中每个组件函数的Do_后面名称相同,不分大小写
8.函数页面中,输入参数必须和script.vbs文件中该函数的输入参数名相同,不分大小写,如有多个用"/"连接
9.函数页面中,输出参数必须和script.vbs文件中该函数中param.PushArray方法的第1个参数值相同,不分大小写,如有多个用"/"连接
C.测试用例输入参数组合的编写要求
1.确定本测试用例依次调用哪几个函数;
2.每个函数的输入参数都分为2类,1是从测试用例中读取,2是通过其他函数输出;
3.各个函数的输入参数的值,凡是无法通过其他函数输出来获取,则都需要在测试用例输入参数组合写入该参数值,并按照函数顺序、函数参数顺序来写参数值的顺序;凡是能通过其他函数输出来获取,则不需要在测试用例输入参数组合中写入
4.如有多个用"/"连接
D.后续如何增加新的组件
1.在script.vbs文件中增加新的函数,函数名统一叫Do_xxxx,自行定义输入参数
2.函数体的最开始增加以下,用于判断函数开始执行前脚本是否已经有错,如果已经有错,则该函数无需执行;判断函数能否开始执行,如果条件不具备,则该函数无需执行
Dim myResult
If param.hasExcept Then
param.setRptStatus2
Exit Function
End If
If not 该函数能够执行的预置条件 Then
myResult="Do_函数名及参数列表:执行异常"
param.hasExcept=True
param.setRptString myResult
param.setRptStatus 2
myLog.WriteLog myResult&",用例函数列表编写错误"
Exit Function
End If
如果该函数有输出参数,则在恰当的位置增加,不区分输出参数名的大小写:param.PushArray "输出参数名", 输出参数值
如果函数中涉及到检查,则自行判断检查结果是否正确后,通过调用param.setRptStatus方法来输出,默认0表示成功(不改就是0);改为1表示失败;改为2表示程序出错
如果用例要新增一行测试的结果,则设置myResult的值,最后调用param.setRptString myResult
如果函数需要异常处理,则
If err.number<>0 Then
myResult="Do_函数名及参数列表::执行异常"
param.hasExcept=True
param.setRptStatus 2
param.setRptString myResult
myLog.WriteLog myResult&","&err.Description
err.clear
End If
3.在Flight.xlsx文件的函数页面中,在已有内容的下一行添加一行记录,添加方法参照B.Flight.xlsx编写要求中的6-9点
4.编写好后,调试过程中如果出现异常,需要先将内存中excel.exe进程杀掉,再运行前建议将之前不完整的测试报告文件删除,防止1分钟内2次生成的文件重名导致的再错误
5.本框架修改script.vbs文件中所有组件函数、Flight.xlsx中所有函数记录、用例记录,以及QTP脚本中所用flight.tsr扩展对象库文件后,可用于其他被测软件的自动化测试
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦 赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦 正在学习框架,谢谢lz
路过,浏览:) 下载下来学习~谢楼主 初学QTP,官网直接下载了UFT12.02的试用版
跟着Tutorial学
发现Flight GUI在Flight Details界面上,一旦点了order按钮就崩溃掉。。。
Flight service在后台运行着。。。
求大神指点。。 819longjiayan 发表于 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...
刚开始研究框架,层主能说说楼楼的框架哪里写的不灵活吗? 学习了 :)good 学习学习 你好,看了你的框架,有个问题不明白,数据库是怎么动态加载上的?在代码里没看到,只在对象库管理里找到了加载的tsr。怎么操作具体?是手动把最后完整的对象库导出,在添加到association 里吗?还是写代码?
下载参考下,谢谢分享了 感谢楼主的分析:lol:handshake 819longjiayan 发表于 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...
可以分享出来参考下不? 以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的 以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的 谢谢分享~~ 学习了 谢谢分享,我正在学习框架,好头痛,希望对我有帮助:hug:
页:
[1]
2