51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 30605|回复: 22
打印 上一主题 下一主题

[资料] 一个关于QTP自带Flight教学软件的自动化测试框架

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-1-30 11:12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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扩展对象库文件后,可用于其他被测软件的自动化测试

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-13 11:02
  • 签到天数: 55 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2015-1-30 15:51:24 | 只看该作者
    赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-13 11:02
  • 签到天数: 55 天

    连续签到: 1 天

    [LV.5]测试团长

    3#
    发表于 2015-1-30 15:51:33 | 只看该作者
    赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活了,脚本维护麻烦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2015-2-5 09:27:58 | 只看该作者
    正在学习框架,谢谢lz
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2015-2-13 16:10:34 | 只看该作者
    下载下来学习~谢楼主
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-4-7 15:14
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2015-4-7 15:13:15 | 只看该作者
    初学QTP,官网直接下载了UFT12.02的试用版

    跟着Tutorial学

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

    Flight service在后台运行着。。。

    求大神指点。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-6-22 09:02
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]测试营长

    8#
    发表于 2015-4-10 15:26:35 | 只看该作者
    819longjiayan 发表于 2015-1-30 15:51
    赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...

    刚开始研究框架,层主能说说楼楼的框架哪里写的不灵活吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-2-4 09:49
  • 签到天数: 145 天

    连续签到: 1 天

    [LV.7]测试师长

    12#
    发表于 2015-11-25 14:45:19 | 只看该作者
    你好,看了你的框架,有个问题不明白,数据库是怎么动态加载上的?在代码里没看到,只在对象库管理里找到了加载的tsr。怎么操作具体?是手动把最后完整的对象库导出,在添加到association 里吗?还是写代码?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2015-11-29 22:14:32 | 只看该作者
    下载参考下,谢谢分享了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-4 09:55
  • 签到天数: 5 天

    连续签到: 2 天

    [LV.2]测试排长

    14#
    发表于 2015-12-1 17:40:40 | 只看该作者
    感谢楼主的分析
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2015-12-12 18:32:16 | 只看该作者
    819longjiayan 发表于 2015-1-30 15:51
    赞个,分享了自己的成果,我写了部分,还没完成,也要向楼主学习,多分享;不过楼主你写的框架写得太不灵活 ...

    可以分享出来参考下不?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2016-1-7 16:25:22 | 只看该作者
    以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2016-1-7 16:25:51 | 只看该作者
    以前只是对框架有没啥概念,现在开始学习自动化,才知道自动化框架 很重要~。学习下楼主写的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2016-2-15 13:59:18 | 只看该作者
    谢谢分享~~  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-5-4 09:16
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    20#
    发表于 2016-3-20 11:47:17 | 只看该作者
    谢谢分享,我正在学习框架,好头痛,希望对我有帮助
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 08:31 , Processed in 0.079479 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表