一个简单的使用datepool的例子
我在网上找到一个简单的使用datapool的例子,但是运行不起来,有好几个地方编译通不过,其中,“dp=SQADatapoolOpen("jsq");”一行,我Dim了新的变量,该行的编译错误已经改掉了,但是 Result = LabelVP (CompareNumeric, "Text="& sum &".","VP=Alphanumeric;Value="& sum &"."); 始终是不对,也不知道应该怎么改,求助哪位帮我看看,应该怎么改,谢谢。例子脚本如下:
------------------------------------------------------------------------------------------------------------------------
Sub Main
Dim Result As Integer
'Dim定义一个变量
Dim x as integer
Dim num1 as string
Dim num2 as string
Dim sum as string
'Initially Recorded: 2003-7-188:51:18
'Script Name: 计算器-2
StartApplication "C:\WINNT\system32\calc.exe"
dp=SQADatapoolOpen("jsq");
'打开数据池,jsp为数据池的名称,这个数据池是预先按照上述规范做好的
for x=1 to 5
Call SQADatapoolFetch(dp)
'从数据池中读取记录
Call SQADatapoolValue(dp, 1, num1)
Call SQADatapoolValue(dp, 2, num2)
Call SQADatapoolValue(dp, 3, sum)
'将从数据池中读取的数据赋予相应变量
Window SetContext, "Caption=计算器", ""
InputKeys num1 & "{+}" & num2 & "{ENTER}"
Result = LabelVP (CompareNumeric, "Text="& sum &".","VP=Alphanumeric;Value="& sum &".");
'LabelVP是为标签控制建立查证点,Result = LabelVP (action%, recMethod$, parameters$)
next
Call SQADatapoolClose(dp)
'关闭数据池
Window CloseWin, "", ""
End Sub
--------------------------------------------------------------------------------
up
up 确保你调用了头文件'$Include "sqautil.sbh"SQADatapoolOpen 最好带参数如下
SQADatapoolOpen (".......",FALSE,SQA_DP_SEQUENTIAL,TRUE)
循环之前最好先调用
dp_result=SQADatapoolFetch (...)
循环体里面再调用 dp_result=SQADatapoolFetch (...)
Result = LabelVP (CompareNumeric, "Text="& sum &".","VP=Alphanumeric;Value="& sum &".");
这句语法有误
& 前后需要留空格 如楼上所说的一样,首先确保调用了头文件 '$Include "sqautil.sbh"
其次SQADatapoolOpen如果不带其它参数,我认为是选择的默认的参数,是可以不带参数的;而楼主失败是不是没有定义数据池“jsq”或没有调用头文件?
至于语法我认为是没有问题的,& 和 + 号具有相同的功能,都是字符串连锁操作符,我认为:当用&连接时,在常量与变量相连接的情况下,之间必须用空格隔开,不过最好在这两个操作符前后都加上空格
这个例子我也看到过,是没有问题的,它通过labelVP验证通过计算器计算出的结果与jsq数据池中第三列的和进行比较,相等则pass,不等则会fail
下图在前六行都会pass,而在最后一行则会fail,因为1+1不等于3
'$Include "sqautil.sbh"
'一,该例子是datapool的一个例子,可以在caculator中输入datapool提供的数据,并比较datapool的结果进行验证
Sub Main
Dim Result As Integer
dim x as integer
dim num1 as string
dim num2 as string
dim sum as string
dim dp as long
Dim dp_Result as Long
'Initially Recorded: 2006-2-99:36:21
'Script Name: 计算器
StartApplication "C:\WINNT\system32\calc.exe"
'打开数据池,jsp为数据池的名称,这个数据池是预先按照上述规范做好的
dp = SQADatapoolOpen("jsq")
dp_Result = SQADatapoolFetch(dp)
while dp_Result <> sqaDpEOF
'将从数据池中读取的数据赋予相应变量
Call SQADatapoolValue(dp,1,num1)
Call SQADatapoolValue(dp,2,num2)
Call SQADatapoolValue(dp,3,sum)
'从数据池中读取记录,将光标下移
dp_Result = SQADatapoolFetch(dp)
Window SetContext, "Caption=计算器", ""
InputKeys num1 &"{+}"& num2 &"{ENTER}"
Result = LabelVP (CompareNumeric, "Text="& sum &".", "VP=Alphanumeric;Value="& sum &".")
wend
'关闭数据池
Call SQADatapoolClose(dp)
Window CloseWin, "currentwindow", ""
End Sub 还是不行啊!数据池创建时,有没有要特别注意的地方啊?
[ 本帖最后由 timejtt 于 2007-10-31 17:31 编辑 ] 你先不要做验证点...可以循环了再加上去就可以了... 我也试了,数据池jsq中就设了一行数据,num1=1,num2=1,sum=2,结果回放时验证点显示失败,不知怎么回事呢?请教~ 自己也试了,就是不成功,好像值根本就没有从数据池里调出来 希望明白的人能指点一下,看是不是创建数据池的时候有什么特殊的地方?或是两者调用的时候有什么主意的地方? 有试了一下,值是取出来了,可是验证点就是通不过,调试结果总是不对。 有一个问题:我们自己在录制脚本的时候,那个验证点添加时的那个依据是从哪里取得(即:那个‘小手’所指的是什么类型的文件或什么标签),是TestDatastore\DefaultTestScriptDatastore\TMS_Datapools文件夹下所创建的数据池(.csv)文件么? 希望明白人给指点一下。
页:
[1]