51Testing软件测试论坛

标题: 一个简单的使用datepool的例子 [打印本页]

作者: ever_li    时间: 2006-3-27 15:13
标题: 一个简单的使用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-18  8: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
--------------------------------------------------------------------------------
作者: ever_li    时间: 2006-3-27 18:31
标题: up
up
作者: yangjingxiao    时间: 2006-3-27 18:51
确保你调用了头文件  '$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 &".");   
这句语法有误
& 前后需要留空格
作者: caesarqth    时间: 2006-3-27 19:18
如楼上所说的一样,首先确保调用了头文件   '$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-9  9: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:28
还是不行啊!数据池创建时,有没有要特别注意的地方啊?

[ 本帖最后由 timejtt 于 2007-10-31 17:31 编辑 ]
作者: lzq1378    时间: 2007-12-28 17:35
你先不要做验证点...可以循环了再加上去就可以了...
作者: DONGDONG_2007    时间: 2008-1-16 12:07
我也试了,数据池jsq中就设了一行数据,num1=1,num2=1,sum=2,结果回放时验证点显示失败,不知怎么回事呢?请教~
作者: irene0331223    时间: 2008-3-13 17:15
自己也试了,就是不成功,好像值根本就没有从数据池里调出来
作者: irene0331223    时间: 2008-3-13 17:16
希望明白的人能指点一下,看是不是创建数据池的时候有什么特殊的地方?或是两者调用的时候有什么主意的地方?
作者: irene0331223    时间: 2008-3-13 17:44
有试了一下,值是取出来了,可是验证点就是通不过,调试结果总是不对。
作者: irene0331223    时间: 2008-3-13 17:58
有一个问题:我们自己在录制脚本的时候,那个验证点添加时的那个依据是从哪里取得(即:那个‘小手’所指的是什么类型的文件或什么标签),是TestDatastore\DefaultTestScriptDatastore\TMS_Datapools文件夹下所创建的数据池(.csv)文件么?   希望明白人给指点一下。




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