51Testing软件测试论坛

标题: 多个脚本怎么合并运行及vbs文件问题 [打印本页]

作者: virgolong    时间: 2009-4-19 16:32
标题: 多个脚本怎么合并运行及vbs文件问题
公司程序是B/S的,功能菜单分为三级:一级模块、二级模块和三级功能。我的脚本是按三级功能编写的,每个脚本中有多个atcion。
    我是用的描述性编程,每个脚本有个vbs文件定义了该功能的browser、Frame、TreeFrame等,例如下面的定义,所有功能都是用的同样的变量名
Dim fun_name,grid_url,form_url
fun_name="备件材料分类"
grid_url=".*grid_spare_base_type.jsp.*"
form_url=".*form_spare_base_type.jsp.*"
Set myBrower=Browser("Openurl:=.*main.jsp.*")
Set myPage=Browser("Openurl:=.*main.jsp.*").Page("url:=.*main.jsp.*")
Set myTreeFrame=Browser("Openurl:=.*main.jsp.*").Page("url:=.*main.jsp.*").Frame("html id:=lefttree")
Set myDataFrame=Browser("Openurl:=.*main.jsp.*").Page("url:=.*main.jsp.*").Frame("url:="&grid_url)
Set myFormFrame=Browser("name:="&fun_name).Page("title:="&fun_name).Frame("url:="&form_url)
       现在按单个功能编写完脚本后,运行时需要把整个模块的功能串起来一起运行。本来想用Test Batch Runner,但运行经常会发生一些莫名其妙的问题而且没有运行结果。所以我就又添加了一个新的测试脚本,在这个测试脚本中调用所有已经录好的action(一个一个添加真累)。但最后运行这个脚本时却不能运行。调试vbs中定义的变量发觉是空值。
      求助下大家我该怎么处理好。就是说是一开始脚本分割原则有问题?还是vbs设计有问题?调用脚本有问题?
     万分感谢!
作者: virgolong    时间: 2009-4-19 23:16
哥哥姐姐们,给前意见啊
作者: dreamever    时间: 2009-4-20 09:14
批量运行脚本无非就是那么几个解决方案,用Test Batch Runner,或者在一个action里调用其他已经完成的测试脚本,从你给的代码中看不出来你的设计或者是分割原则有什么问题。如果脚本运行出现问题的话,还是查一下问题的原因吧。
作者: virgolong    时间: 2009-4-20 09:37
目前我每个脚本中有一个vbs文件,而且定义的变量名都是一样的
这种情况下调用脚本时运行时变量的值取不到,怎么处理了?
作者: ls_721521    时间: 2009-4-20 09:55
既然是没用到对象库那就都写到vbs里吧,每个功能写成一个函数,把用到的变量写到函数体里(因为是局部变量重名也没关系,可以取得值的),但最好定义个class。。。
作者: virgolong    时间: 2009-4-20 10:05
谢谢ls_721521指点,还没写过class了,不知道有什么作用
作者: ls_721521    时间: 2009-4-20 10:10
原帖由 virgolong 于 2009-4-20 10:05 发表
谢谢ls_721521指点,还没写过class了,不知道有什么作用

在网上搜一下vbs类的用法,应该很多吧,
用类应该就是为了解决变量,函数,属性等共享的问题吧。
作者: virgolong    时间: 2009-4-20 10:14
好,搜搜学习看
作者: 风雪夜归人    时间: 2009-4-23 23:11
哈哈,我是用vbs,把要运行的action都写到一个txt里面去,一个action一行,然后vbs读文件操作。。最后结果以Action名字存进result文件夹里面去,不过这个很精简,没有判断文件夹是否存在的操作。。

Dim qtApp 'As QuickTest.Application ' Declare the Application object variable
Dim qtTest 'As QuickTest.Test ' Declare a Test object variable
Dim qtResultsOpt 'As QuickTest.RunResultsOptions ' Declare a Run Results Options object variable
Set qtApp = CreateObject("QuickTest.Application") ' Create the Application object

Dim fso, f
Dim myReg
Dim myString,myResult

myString = ".*\\([^\:]+)"

qtApp.Launch ' Start QuickTest
qtApp.Visible = True ' Make the QuickTest application visible
' Set QuickTest run options
'qtApp.Options.Run.ImageCaptureForTestResults = "OnError"
qtApp.Options.Run.RunMode = "Fast"
qtApp.Options.Run.ViewResults = False

set fso = WScript.CreateObject("scripting.filesystemobject")

Set f=fso.OpenTextFile("D:\QTPScript\testcase.txt", 1, false)
For i = 1 To 5
        Do While f.AtEndOfStream <> True
                retstring = f.ReadLine
                Set myReg = New RegExp
                myReg.Pattern = myString
                myReg.IgnoreCase = True
                myResult = myReg.Replace(retstring,"$1")
                qtApp.Open retstring, True ' Open the test in read-only mode
                ' set run settings for the test
                Set qtTest = qtApp.Test
                qtTest.Settings.Run.OnError = "NextStep" ' Instruct QuickTest to perform next step when error occurs
                Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") ' Create the Run Results Options object
                qtResultsOpt.ResultsLocation = "C:\QTPScript\result\" & myResult & "_" & i ' Set the results location
                qtTest.Run qtResultsOpt 'Run the test
        Loop
Next

f.close
'MsgBox qtTest.LastRunResults.Status
qtTest.Close

'qtTest.Close ' Close the test
Set qtResultsOpt = Nothing ' Release the Run Results Options object
Set qtTest = Nothing ' Release the Test object
Set qtApp = Nothing ' Release the Application object
作者: 风雪夜归人    时间: 2009-4-23 23:13
我发觉我的for循环写错位置了。。Next应该写在f。close后面,运行脚本5次
作者: virgolong    时间: 2009-4-23 23:31
真的要非常感谢风雪夜归人,这么晚还在回帖,又学到东西了。
前些天看贴还奇怪把QTP当作个对象干什么用了,原来可以这样用的。可不可以把你的脚本给个我看看啊,好好学习下
作者: virgolong    时间: 2009-4-23 23:35
另外,对于测试脚本加载vbs,我还有个问题
test1测试脚本有vbs文件,定义了变量s,赋值1;test2测试脚本有vbs文件,定义了变量s,赋值2
我在测试时新建一个脚本,调用test1的,再调用test2,发觉test1、test2定义的变量都没生效,值都是空的。
这种调用脚本时,vbs文件怎么处理啊




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