google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

[原创] 网上流行的一自动化框架动态执行的代码段

本帖已经被作者加入个人空间

网上流行的一自动化框架动态执行的代码段


框架还是蛮有意思的。
   再和我们的框架对照下(思路、目录结构、分层等),很多思想基本相通:)
   其中动态执行代码最吸引我:)  

className=”login”
taskFileName=”login”
Taskfilepath=”login.vbs”

  ExecuteFile taskFilePath '加载task脚本文件
                                logPrint("加载Task脚本文件完成。"&taskFilePath)
                                Execute "Set obj"&taskFileName&" = new "&taskFileName '初始化task的类
str = "obj"&className&"."&taskName&" "&chr(34)&Sheet_Name&chr(34)
                                                        logPrint("执行测试步骤 "&i&", "&str)
                                                        Execute str     ''执行 objlogin.login "login","TEST_SHEET"


Execute "Set obj"&tempArray(i)&" = nothing"

[ 本帖最后由 liangjz 于 2008-7-6 00:11 编辑 ]

TOP

呵呵,这个要求所有的业务脚本都是function形式组织的,个人觉得还是有他的弱点
编码的工作量比较大,对于业务脚本我还是喜欢用action来组织
但是脚本的调度还是和这个框架提供的方法一样,他提供class,我则是维护action名
向着QTP自动化方向深入发展
欢迎QTP研究者一起交流,相互进步
欢迎访问我的测试博客:http://www.51testing.com/?uid/161787

TOP

代码写得很有意思,膜拜一个....

TOP

这个我看过了,写的不错。但是执行起来有难度。

TOP

支撑实现这些框架最核心的是用到Execute语句:
http://blog.csdn.net/Testing_is_ ... /04/19/2307970.aspx
Seeing is NOT Believing!Testing is believing!
www.itestware.com
http://blog.csdn.net/testing_is_believing

TOP

这个框架我很久用了,对上面的代码其实有些不够好的,可以参考MVC框架的思想。 其实对目前自动化1框架有两个问题我觉得很重要:1)数据独立出来并且最好统一的管理和维护;2)业务逻辑和应用逻辑应该分离,这样能很好的使用业务逻辑变化引起的应用逻辑的修改,但要这样做的话,就需要一个让业务逻辑和应用逻辑不要直接发生调用关系,如上面提到的代码一样,把这部分代码抽象出来并封装一下,成为controller,让后让它来动态调用各种业务逻辑。
当然业务逻辑你可以用方法,也可以用类,也可以用啊action
同时这种框架可以很好的扩展到N架构上

TOP

回复 6# 的帖子


同一楼上的,我目前就是把控制函数封装起来调用的,呵呵
向着QTP自动化方向深入发展
欢迎QTP研究者一起交流,相互进步
欢迎访问我的测试博客:http://www.51testing.com/?uid/161787

TOP

目的都是减少耦合

TOP

引用:
原帖由 liangjz 于 2008-7-5 23:52 发表
框架还是蛮有意思的。
   再和我们的框架对照下(思路、目录结构、分层等),很多思想基本相通:)
   其中动态执行代码最吸引我:)  

className=”login”
taskFileName=”login”
Taskfilepath=”login.vb ...
什么流行的框架啊,我没见过,发出来给偶们看看吧。
I pour water indeliberately.

TOP

Execute确实是个好东西。可以执行动态生成的代码。

它是VBS所独有的语句,在VB中不支持。我之前曾试图找过这种语句。

可凭着对VB的了解,我后来放弃了。昨天晚上在读别人的代码的时候无意中发现了这条语句。

[ 本帖最后由 tanky 于 2008-7-19 17:59 编辑 ]

TOP

附表两张: 下表列出未包含在 VBScript 中的 Visual Basic for Applications 特性。
类别特性/关键字
数组处理Option Base
声明数组下界 <> 0
集合Add, Count, Item, Remove
使用 ! 字符访问集合
条件编译#Const
#If...Then...#Else
控制流程DoEvents
GoSub...Return, GoTo
On Error GoTo
On...GoSub, On...GoTo
Line numbers, Line labels
转换CVar, CVDate
Str, Val
数据类型除 Variant 外的所有固有数据类型
Type...End Type
日期/时间Date 语句、Time 语句
DDELinkExecute, LinkPoke, LinkRequest, LinkSend
调试Debug.Print
End, Stop
声明Declare (声明 DLL )
Optional
ParamArray
Static
错误处理Erl
Error
Resume, Resume Next
文件输入/输出所有传统的基本文件输入/输出 (I/O)
财务所有财务函数
对象操作TypeOf
对象Clipboard
Collection
运算符Like
选项Deftype
Option Base
Option Compare
Option Private Module
选择条件包含 Is 关键字或任何比较运算符的表达式
包含一系列使用 To 关键字的数值的表达式
字符串固定长度字符串
LSet, RSet
Mid 语句
StrConv


下表列出了未包含在 Visual Basic for Applications 中的 VBScript 特性。
分类特性/关键字
声明Class
杂项Eval
Execute
对象Regexp
Script 引擎标识ScriptEngine
ScriptEngineBuildVersion
ScriptEngineMajorVersion
ScriptEngineMinorVersion


[ 本帖最后由 tanky 于 2008-7-19 18:01 编辑 ]

TOP

 
当前时区 GMT+8, 现在时间是 2008-10-8 15:26Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹