51Testing软件测试论坛

标题: 一个关于QTP自带Flight教学软件的自动化测试框架 [打印本页]

作者: 泰然    时间: 2015-1-30 11:12
标题: 一个关于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.setRptStatus  2
                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扩展对象库文件后,可用于其他被测软件的自动化测试


作者: 819longjiayan    时间: 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦
作者: 819longjiayan    时间: 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦
作者: 非鱼1314    时间: 2015-2-5 09:27
正在学习框架,谢谢lz

作者: oliver.tang    时间: 2015-2-9 20:07
路过,浏览
作者: mixcool    时间: 2015-2-13 16:10
下载下来学习~谢楼主
作者: zcxi007    时间: 2015-4-7 15:13
初学QTP,官网直接下载了UFT12.02的试用版

跟着Tutorial学

发现Flight GUI在Flight Details界面上,一旦点了order按钮就崩溃掉。。。

Flight service在后台运行着。。。

求大神指点。。
作者: vbs小菜鸟    时间: 2015-4-10 15:26
819longjiayan 发表于 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...

刚开始研究框架,层主能说说楼楼的框架哪里写的不灵活吗?
作者: cdq1010    时间: 2015-4-21 12:48
学习了
作者: 283976814    时间: 2015-5-20 09:36
good
作者: lzq101848    时间: 2015-8-13 12:54
学习学习
作者: shanfeng1419    时间: 2015-11-25 14:45
你好,看了你的框架,有个问题不明白,数据库是怎么动态加载上的?在代码里没看到,只在对象库管理里找到了加载的tsr。怎么操作具体?是手动把最后完整的对象库导出,在添加到association 里吗?还是写代码?

作者: 757563246    时间: 2015-11-29 22:14
下载参考下,谢谢分享了
作者: gliter_love    时间: 2015-12-1 17:40
感谢楼主的分析
作者: 757563246    时间: 2015-12-12 18:32
819longjiayan 发表于 2015-1-30 15:51
赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...

可以分享出来参考下不?
作者: ccav_fuck    时间: 2016-1-7 16:25
以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的
作者: ccav_fuck    时间: 2016-1-7 16:25
以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的
作者: leozhu1992    时间: 2016-2-15 13:59
谢谢分享~~  
作者: mgc0530    时间: 2016-2-25 15:56
学习了
作者: jiangyoujun    时间: 2016-3-20 11:47
谢谢分享,我正在学习框架,好头痛,希望对我有帮助
作者: zy451554761    时间: 2016-6-17 11:16
下来看看!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: lisaswing    时间: 2016-12-24 15:28
感谢分享
作者: 351318733    时间: 2017-9-8 14:30
膜拜




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2