51Testing软件测试论坛

标题: 轻量级的自动化测试框架 [打印本页]

作者: mstiunicon    时间: 2008-1-18 10:51
标题: 轻量级的自动化测试框架
解压rar文件,执行Driver.vbs文件即可,需要安装QuickTest。
作者: yabest    时间: 2008-1-18 11:46
下载看看。
好像driver test无法打开,QTP报告格式错误!
作者: jinsen    时间: 2008-1-18 11:47
感谢LZ,学习一下。
作者: lantianwei    时间: 2008-1-18 13:04
呵呵...谢谢LZ共享
作者: marygao929    时间: 2008-1-18 13:12
driver.vbs 报:can not open test
作者: mstiunicon    时间: 2008-1-18 13:25
QTP应该是9.0版本或以上。
如果driver.vbs打不开,直接用QTP打开Driver脚本,一样的效果。
作者: three116    时间: 2008-1-18 14:30
deng deng 看看 先谢谢了
作者: gy21st    时间: 2008-1-19 22:51
层次结构很清晰,顶一下。
楼主说得不错,所谓框架,不是一个什么都淘得进去的模子,有了基本的思想,和具体项目结合才是正解。
作者: mstiunicon    时间: 2008-1-20 12:41
原帖由 gy21st 于 2008-1-19 22:51 发表
层次结构很清晰,顶一下。
楼主说得不错,所谓框架,不是一个什么都淘得进去的模子,有了基本的思想,和具体项目结合才是正解。


哈哈,握个手
作者: 隐形人    时间: 2008-1-20 13:55
谢了,现在正在找这个
作者: jackymail    时间: 2008-1-21 01:04
对于QTP地认识从最开始的大量使用action到逐步淘汰Action转向Function
从最开始的拒绝使用对象库,到减少使用描述性编程而大量使用对象库。
从把对象倒入到Excel表再倒回来,到省略了那个反复传送。
从复杂的设计开发出各种概念,制定一些复杂的制度,到最后简单到QTP设计的初衷。

大家都在探索。。。。。。

这个PPT里面提到的缺陷其实都是没有做而已,而不是提出这种方方法的缺陷。

个人意见:减少所谓Test Set,直接把最小概念定义到Test Case, 这是每个人都要接触的也都熟悉的,不要因为作了自动化就要引入一些新的概念,只能增加复杂度,更不宜于推广。

这个ppt让我欣赏的地方就是把log case data等一些东西分开文件夹管理,这样的确很清晰。值得学习。

我觉得log地记录最好是用case为单位,再做一个集成相同类型log的vbs,把需要集中在一起的log通过简单的vbs调用创建一个整体的log.

算了不写了。。随便说说,交流而已。
作者: mstiunicon    时间: 2008-1-21 10:41
原帖由 jackymail 于 2008-1-21 01:04 发表
对于QTP地认识从最开始的大量使用action到逐步淘汰Action转向Function
从最开始的拒绝使用对象库,到减少使用描述性编程而大量使用对象库。
从把对象倒入到Excel表再倒回来,到省略了那个反复传送。
从复杂的设计 ...

按照我的理解,不管是使用Action,还是使用Function,都是使用工具的一种方式,QTP仅仅只是QTP,最重要的是你想用它来干什么。做这个东西,一是要目的性强,二是要简单方便。
1 testSet其实只是用来管理testcase的Excel文件的索引而已,如果不用这个,会不会比较散?不过如果能用TD来实现这个功能是最好的,研究一下。
2 日志文件这样存放倒是有点意思,我试着写一个这样的Function。
作者: lantianwei    时间: 2008-1-21 14:51
原帖由 mstiunicon 于 2008-1-18 10:51 发表
解压rar文件,执行Driver.vbs文件即可,需要安装QuickTest。

看了你的PPT,惊人的发现和我现在设计的QTP框架非常相似,因此再也忍不住了,我也来说两句吧,我当初也是因为ACTION太难使用和管理,所以选择FUNCTION的,我觉得ACTION只有在和TD/QC进行集成时才可以发挥他的优势.在设计过程中也发现测试用例和测试数据的组织非常重要.
下面说说我对你的框架的看法吧,
1.我觉得你把testcase和testdata有点搞混了,你的testcase真正意义上我觉得应该是一个配置文件,决定了该运行哪个excel;而你的testdata其实是放用例步骤和测试数据的.不知道你是怎么处理测试数据的,怎么知道一个功能要调用到表中的哪一行测试数据,是不是缺少了字段,请兄才指点!
2.为什么不把你测试要加载的一些资源放在配置文件里进行配置呢?那么这个框架的复用性就更高了.
3.LOG文件和QTP报告我觉得最好不要覆盖原有的,QTP报告可以用自定义XLS来生成自己特定的报告样式,效果还不错.
4.不知道你这个框架能不能保证在前面用例出错的情况还可以正常运行下去
就说这几点吧,可能其他都是优化方面的,就不说了.
以上只是个人意见,如有不妥指出,还请指出!
下面是我设计的框架架构图:
作者: mstiunicon    时间: 2008-1-22 10:11
原帖由 lantianwei 于 2008-1-21 14:51 发表

看了你的PPT,惊人的发现和我现在设计的QTP框架非常相似,因此再也忍不住了,我也来说两句吧,我当初也是因为ACTION太难使用和管理,所以选择FUNCTION的,我觉得ACTION只有在和TD/QC进行集成时才可以发挥他的优势.在设计 ...


哈哈,能和lantianwei进行交流真是太好了。
1 testSet是沿用了TD的说法,其作用或者说角色是用来管理TestCase的。用来表现testSet的方式至少有3种,Excel表格,XML文件,数据库。个人比较倾向使用Excel和数据库的形式,因为不太习惯使用XML文件,呵呵。另外也是因为Excel手工操作起来比较方便。如果可以的话,还是想用数据库的形式,这样,可以做一个类似TD的东西出来。。。。
2 testcase一般是包含测试步骤和测试数据两部分,我把它们分开,在理念上有误,我会修改一下的。
3 “怎么知道一个功能要调用到表中的哪一行测试数据”,这个是由测试步骤的filter字段来控制的。
4 要加载的资源的确是应该放到配置文件中,我这是偷了一点懒,直接写死了,哈哈。
5 日志和错误处理暂时没有更好的想法。

看了你的框架图,有一些疑问:
1 你的controller调用TestCase的数据,执行Case脚本,这么说来,你的测试用例的步骤是写在脚本中的?
2 GUI map,看到这个我就头疼,因为我测试的系统不是很标准,做GUI map的可行性不高。你也是用GUI map实现了类似QTP的关键字驱动的功能?
3 Modules的目的是用来做什么的?这个不太理解。
更希望看到你做出来的例子,这样才能更好的理解你的思想啊。
作者: xiaoyaoke    时间: 2008-1-22 11:04
貌似主体结构都差不多...只是一些细节上有差距

想问问楼主,你的这个自动化测试框架受过谁的影响?
作者: lantianwei    时间: 2008-1-22 12:39
原帖由 mstiunicon 于 2008-1-22 10:11 发表


哈哈,能和lantianwei进行交流真是太好了。
1 testSet是沿用了TD的说法,其作用或者说角色是用来管理TestCase的。用来表现testSet的方式至少有3种,Excel表格,XML文件,数据库。个人比较倾向使用Excel和数据库 ...

呵呵....我做一下简单的回答吧!
1.controller就想一台电脑的CPU,它是处理测试脚本的运行,结果的导出,异常的处理等等.我的业务逻辑和测试脚本是分离的,所以用例是写在testcses里的.你可以看到我用绿色标注的是手工测试人员或业务人员应该关注的.
2.可以用描述性编程,对象库都可以,只不过用描述性编程的话要做特殊的处理,已便于最快的定位到对象,以便于在后期进行维护;而对象库整理比较麻烦,比如命名规则什么的.两者各有所长,我在之前做的一个是用描述性编程,可以根据项目的特性来确定用什么,比如GUI变更少的话,就可以选择描述性编程,因为它开发起来比较快.
3.Modules是单个功能的脚本文件,可能这里的功能粒度划分的比较细点(但不是以一个动作为单位的),这些脚本也可以独立的完成某一特定任务,该脚本是以模块来划分的;casescripts是通过组合多个Modules里的函数而生成的一个特殊业务功能脚本,这样做主要是为了提高复用性,以及减少用例的步骤数

[ 本帖最后由 lantianwei 于 2008-1-23 16:56 编辑 ]
作者: 今天有雾    时间: 2008-1-22 14:24
先学习一下楼主的资料,然后听了各位楼建意,收获不少,对我的框架学习很有帮助,Thank LZ
作者: musk    时间: 2008-1-22 15:54
给我很大的启发~谢谢2位
作者: loho1968    时间: 2008-1-22 16:13
WR有一个开源的自动化测试框架项目,我曾经模仿这个项目做了一个QTP的.

一个管理控制文件,用于设置需要执行哪些CASE
一个CASE描述文件,用于描述一个CASE应该如何执行.

自动化测试框架想想很好,但实际应用会有很多问题,个人感觉最麻烦的是如果这个框架没有较深的积累,无法处理有复杂逻辑的测试目标.可以完成简单的功能执行和检查点的检查,但如果有业务逻辑检查就比较麻烦了.
作者: lantianwei    时间: 2008-1-22 16:31
原帖由 loho1968 于 2008-1-22 16:13 发表
WR有一个开源的自动化测试框架项目,我曾经模仿这个项目做了一个QTP的.

一个管理控制文件,用于设置需要执行哪些CASE
一个CASE描述文件,用于描述一个CASE应该如何执行.

自动化测试框架想想很好,但实际应用会有很 ...

你这个是关键字驱动框架啊,如何做好确实有一定的难度!
作者: tandy011922    时间: 2008-1-23 14:15
感谢LZ,学习一下。
作者: zxxzxx321    时间: 2008-1-28 14:11
虽然现在还不是很理解,但还是很谢谢各位的分享
作者: lilysun0411    时间: 2008-1-29 17:17
不错,学习中!希望楼长多共享点类似的知识总结.
作者: Fredy    时间: 2008-2-3 12:18
踏破铁鞋无觅处,。。。
非常感谢各位的共享,谢谢!
作者: sunqiang1024    时间: 2008-2-3 12:51
正在发愁怎么能更有效的管理QTP的脚本,而且发挥脚本的最大共用,谢谢楼主的分享,看看楼主的东西,应该能对我的管理有很多帮助。
作者: sunqiang1024    时间: 2008-2-3 15:06
问个问题,ErrorHandle(),这个方法,你的脚本是怎么使用的?
Public Function ErrorHandle()
        If Err.Number <> 0 Then
                logPrint "Error Num: " & Err.Number & "; Error Src: " & Err.Source & "; Error Desc: " & Err.Description
                Err.Clear
        End If
End Function
作者: lilysun0411    时间: 2008-2-3 17:27
QTP学习中,非常帮助的资料,谢谢LZ!
作者: mstiunicon    时间: 2008-2-18 11:35
原帖由 sunqiang1024 于 2008-2-3 15:06 发表
问个问题,ErrorHandle(),这个方法,你的脚本是怎么使用的?
Public Function ErrorHandle()
        If Err.Number  0 Then
                logPrint "Error Num: " & Err.Number & "; Error Src: " & Err.Sou ...


错误处理的部分,其实还没有开始写,就放下了。
目前暂时没有太好的思路,我要先把这个框架试运行一段时间后,才能发现解决的办法。
作者: mfjin    时间: 2008-3-6 10:13
想问一下,如果这个框架搭建后,由多人共同管理,对象库如何管理呢?
作者: tiger_86    时间: 2008-3-6 10:17
谢谢
作者: tiger_86    时间: 2008-3-6 10:22
我刚看了一边! 就是大致的看已一边!
我感觉 还是用 线性编程是比较好的 呵呵
作者: FLY000    时间: 2008-3-20 15:08
留下脚印,学习!
作者: lantianwei    时间: 2008-3-21 11:26
过了两个月再来看你的框架架构,发现其实比我的要优秀,惭愧啊!
作者: liuhuascanf    时间: 2008-4-16 00:37
真是个好东西,让我一下子茅塞顿开
非常感谢楼主和楼上的专家
作者: mustwangrong    时间: 2008-4-16 10:11
上周五给公司同事一个框架的Demo
主要参考阿三的一个项目--你的框架和他们很像

他们没有QC
--我加上了,除了EXCEL和log以外都是可以用QC来管理的
而且QC还方便tester执行追踪

p.s 我们只有zip,能不能传个project.zip啊?

[ 本帖最后由 mustwangrong 于 2008-4-16 10:26 编辑 ]
作者: wtucel    时间: 2008-4-16 11:46
非常感谢楼主和版主的精彩讨论,又让我在QTP框架的研究上进步了不少,谢谢,谢谢!!
作者: wzdoxu    时间: 2008-4-16 17:21
谢谢楼主提供这么好的资料
作者: testman    时间: 2008-7-12 14:44
最近正在研究这个,谢谢楼主的资料,非常有启发~~
作者: binzhang    时间: 2008-7-12 22:04
谢谢LZ
参考一下看看
作者: vickywang_no1    时间: 2008-7-14 17:39
谢谢楼主。
作者: veryseven    时间: 2008-7-14 19:56
标题: 回复 1# 的帖子
Thanks
作者: lijunhu    时间: 2008-9-3 16:26
学习中,谢谢楼主。
作者: lijunhu    时间: 2008-9-6 15:17
下载了,研究了,很好.
作者: peter_pan    时间: 2008-9-7 10:53
很有收获啊!
作者: Peyton    时间: 2008-11-28 17:48
我的水平没有这么高,还看不大明白,谢谢楼主,看来我得好好研究一下啦!
作者: wugecat    时间: 2009-1-15 14:30
感激不尽~!我目前就是利用这个框架进行测试用例的开发工作
作者: ★星の金币    时间: 2009-1-16 14:49
学习中……
先顶一下~
继续学习中……
作者: shixiaobing    时间: 2009-2-2 16:50
标题: how can I get the login account?
测试
作者: shixiaobing    时间: 2009-2-2 17:20
标题: how can I get the login account?
how can I get the login account?
作者: j44jj44j    时间: 2009-2-3 11:14
学习中,楼主和版主的水平都很高,自己的水平还差很多
作者: zzqt_7    时间: 2009-2-17 15:10
标题: 学习了
路过 发现这边的风景太好了 最近我们也需要搞一个自动化测试的框架 不过跟二位的比起来真的惭愧!要努力学习了!
作者: zzqt_7    时间: 2009-2-18 18:17
强 学习一下
作者: cherryqxh    时间: 2009-6-17 14:54
谢谢楼主啦,我正在研究你的这个框架,希望能弄的出来啊
作者: 任道远    时间: 2009-6-24 14:19
学习
作者: lansemogu1985    时间: 2009-9-18 16:22
标题: curpage使用描述性语言的问题
我用楼主的框架,运用到公司的一个项目上,发现有name的frame是蛮好找的:browser("creationtime:=1").page("index:=0").Frame("name:=TopPage"),  但是有些没有name的frame就很难找了:Set curpage=browser("createtime:=2").page("index:=1").Frame("html tag:=IFRAME","html id:=framTop"),QTP老是提示说找不到frame。有没有好的解决方法?该用的属性都用上了,该怎么办呢?
作者: 43528782    时间: 2011-2-18 11:29
这个帖子好~
各抒己见,学习了!~
作者: sam.sheng.3    时间: 2011-6-8 15:13
帮顶,好贴,虽然我看不懂
作者: crakme    时间: 2011-11-25 16:33
好东西啊
作者: wower1985    时间: 2011-11-28 14:23
本帖最后由 wower1985 于 2011-11-28 14:25 编辑

请问你开发脚本、调试脚本花费多少工作量?用例代码重用有多不?




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