51Testing软件测试论坛

标题: qtp框架讨论 [打印本页]

作者: mfjin    时间: 2008-3-5 11:01
标题: qtp框架讨论
公司现在需要用自动化测试,暂时选用了qtp。我现在搭建了一个框架,请大家看看有什么建议?
整个系统由Data, Report , Functions , Dll , SystemActions ,tsr组成。其中Data目录下面存放测试用例数据,Report目录下存放纪录自动运行测试结果的文件,Functions存放系统vbs脚本文件,Dll存放系统所需要的dll文件,SystemActions存放系统qtp的各级actions,tsr下面存放系统共享的tsr文件。下面分别介绍系统各级目录功能。
作者: mfjin    时间: 2008-3-5 11:02
Data 目录下面存放InputMoneyIO.xls文件,在这个excel中有各个测试用例所需要的数据。在运行系统前,在这个文件里存放所需要的所有的数据,运行时自动调用数据进行测试。
作者: mfjin    时间: 2008-3-5 11:02
SystemActions目录
所有在qtp建立的action都在这个目录中存放。存放的结构是TJActions-一级action。尽量将子模块action放在一级action下面,TJActions里面存放系统调用action。编写测试脚本的过程中注意减少action数量,将脚本存放为.vbs文件,便于维护。
作者: jackymail    时间: 2008-3-5 11:03
想法很好,支持!鼓励!加油!
作者: mfjin    时间: 2008-3-5 11:03
Tsr目录
Tsr目录下面只有一个文件TJ.tsr。它是系统共用的对象文件。每个qtp的action运行都不能离开对象文件。在建立新的action之前一定要对象设置为“共享”的模式。如下图所示。
作者: mfjin    时间: 2008-3-5 11:04
五.        Functions目录
Function 目录下面有系统所有的vbs文件。Functions目录下面的.vbs文件为系统共用的脚本文件。这些文件要在resourses里面加载。如下图所示(图略,涉及公司机密)子目录下面的.vbs文件,在各级对应的actions里面直接调用,示例
executefile("E:\qtp\functions\report\clsWriteReport.vbs")
作者: mfjin    时间: 2008-3-5 11:05
六.        Dll目录
存放系统所需dll。Dll功能包括封装希望不被修改内容以及用c或vb等编写功能。
作者: mfjin    时间: 2008-3-5 11:05
七.        Report
执行完用例后,将执行结果写入Results.xls里面。示例:
TestPurpose        results        runtime
testpurpose01        测试通过        2008-3-4 15:55
作者: lantianwei    时间: 2008-3-5 11:06
为什么不放在一起呢?这样看多累人啊!
作者: mfjin    时间: 2008-3-5 11:07
暂时就是这几个目录,已经写了三个用例了,到现在还没有发现什么问题。但是在action和vbs脚本之间有点矛盾。本来的初衷是想弱化action功能,写在vbs脚本里面。维护比较的方便。但是现在vbs脚本也已经比较的庞大了,不知道整个系统建立起来是个什么情形了。
作者: xiaoyaoke    时间: 2008-3-5 11:10
呵呵,差不多都是一个样子
作者: wzdoxu    时间: 2008-3-5 11:18
我也想尝试来搭建这样一个框架,还望多指教啊!
作者: mfjin    时间: 2008-3-5 11:23
标题: 回复 11# 的帖子
框架我也是参照别人的做出来的, 但是也有一些改动的
作者: mustwangrong    时间: 2008-3-5 11:34
在QC中管理吗?
怎么引用路径--像xxx.xls是"[QualityCenter] Subject\bbb\xxx.xls"?
好像不行
作者: mfjin    时间: 2008-3-5 12:58
标题: 回复 14# 的帖子
还没有考虑到qc。。。。。
作者: mfjin    时间: 2008-3-5 13:09
标题: 回复 14# 的帖子
还没有考虑到qc。。。。。
作者: harold_zou    时间: 2008-3-5 16:05
现在有些比较成熟的框架,可以参考一下,好像思路都差不多,大的体系大同小异
作者: zhoubo1100    时间: 2008-3-5 17:33
原帖由 mustwangrong 于 2008-3-5 11:34 发表
在QC中管理吗?
怎么引用路径--像xxx.xls是"[QualityCenter] Subject\bbb\xxx.xls"?
好像不行



QC某节点附件管理文件,要访问可以这样使用:
    Dim FolderPath
   FolderPath="[QualityCenter] Subject\bbb"
   FilePath=PathFinder.Locate("xxx.xls")
   变量FilePath的值就是xxx.xls文件在你本地副本的路径。
作者: ppent    时间: 2008-3-6 10:20
楼上的方法不错,不知资料是从哪里找的呀。
作者: mustwangrong    时间: 2008-3-6 18:18
标题: 回复 18# 的帖子
FilePath=PathFinder.Locate("xxx.xls")
这样别人还是要先存到本地吧
作者: lzon    时间: 2008-3-9 21:14
标题: qtp
对它的框架好像有不少的解释~~~
作者: iyaw    时间: 2008-5-28 17:30
TSR不可以放在同一个文件里,应该按模块放在不同的文件里。
作者: Randall    时间: 2008-5-28 19:36
原帖由 mfjin 于 2008-3-5 11:07 发表
暂时就是这几个目录,已经写了三个用例了,到现在还没有发现什么问题。但是在action和vbs脚本之间有点矛盾。本来的初衷是想弱化action功能,写在vbs脚本里面。维护比较的方便。但是现在vbs脚本也已经比较的庞大了,不 ...


其实搂主可以多定义几个function library,根据module划分成module1.vbs,module2.vbs....
这样vbs也不至于太庞大。而且可以在你run哪个module的时候只加载那个module的function
作者: 木卫十二    时间: 2008-5-29 10:26
vbs庞大,可以使用Primal Script之类的脚本编辑工具进行管理~~
作者: FLY000    时间: 2008-5-31 11:01
请问一下大家,能不能不录制,直接写脚本做测试啊
但是不录制的话,那些对象怎么加到对象库啊
作者: liangjz    时间: 2008-5-31 15:31
这些框架目的都是
1) 将公用的API 封装起来

2) 数据和代码分离

3) 业务模块和公共的API隔离
作者: FLY000    时间: 2008-5-31 17:03
框架对于对象是怎么处理的?手动添加对象建立对象库还是用描述性编程?

需要录制吗?
作者: belly9630    时间: 2008-6-3 15:57
我们现在做的框架和楼主说得也很雷同,不同的是数据我们放在vbs文件中,感觉xls太重量级,脚本的维护不方便,在cvs中它是2进制文件,不好比对。当然vbs也比xls文件有劣势:1。不能很好的利用QTP的数据驱动,不过我们的项目对此利用不多,2。都是全局变量,不像xls,数据可以导入相应的action有作用域。另外我们把所有的step都按功能封装在function中,在action中就是调用不同的fnction,这样工作的重心都移植到如何将每个function写的通用,而且能很好的适用GUI对象的变化。
回答27楼的问题:我们一般是在case中录制脚本,这样对象仓库中就会有新的对象添加,然后把这些脚本提炼到function中,目前case数目不太多,还是公用一个共享对象库文件。
作者: 没有蛀牙    时间: 2008-6-3 17:20
文件夹结构只是框架的一小部分
还有编码结构,测试数据结构,report结构,变量、对象、action、component、testcase命名规则等
有些框架还得考虑到case的关联性,参数传递等等
我这里越来越多的问题集中在错误捕捉和错误返回的模式上
框架是整个自动化项目的地基阿
写出文档,给公司有经验的人review一下吧
作者: chipucca    时间: 2010-9-19 22:31
原来框架是这么个意思啊......
作者: lyscser    时间: 2010-9-20 00:30
楼上的方法不错,不知资料是从哪里找的呀。
ppent 发表于 2008-3-6 10:20



可以参考一下
http://bbs.51testing.com/thread-143964-1-1.html
作者: lixudong3032    时间: 2010-9-30 12:12
发表于 2008-3-5 11:02 | 只看该作者
Data 目录下面存放InputMoneyIO.xls文件,在这个excel中有各个测试用例所需要的数据。在运行系统前,在这个文件里存放所需要的所有的数据,运行时自动调用数据进行测试。


你一张表的数据对应多个用例脚本吗???  
如果是,为什么不一个测试脚本对应一张表呢?这样维护起来就简单些啦。
作者: runnerhuang    时间: 2010-9-30 15:15
暂时就是这几个目录,已经写了三个用例了,到现在还没有发现什么问题。但是在action和vbs脚本之间有点矛盾。 ...
mfjin 发表于 2008-3-5 11:07



    建议弱化Action,采用Bat等批量运行的方式,来动态生成Action
作者: zhaoshenzhou    时间: 2010-10-3 22:13
嗯,还不够具体,不过感觉不错。
作者: tlu_jj    时间: 2010-11-20 12:27
谢谢分享!
作者: wangcaihong1986    时间: 2010-11-24 15:40

作者: xiongling    时间: 2010-12-3 17:17
不错,看了后有所收获。谢谢楼主了。




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