51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4840|回复: 10
打印 上一主题 下一主题

[Robot] 一个简单的使用datepool的例子

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-3-27 15:13:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在网上找到一个简单的使用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
--------------------------------------------------------------------------------
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-3-27 18:31:54 | 只看该作者

up

up
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-3-27 18:51:11 | 只看该作者
确保你调用了头文件  '$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 &".");   
这句语法有误
& 前后需要留空格
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-3-27 19:18:49 | 只看该作者
如楼上所说的一样,首先确保调用了头文件   '$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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-10-31 17:28:31 | 只看该作者
还是不行啊!数据池创建时,有没有要特别注意的地方啊?

[ 本帖最后由 timejtt 于 2007-10-31 17:31 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-12-28 17:35:41 | 只看该作者
你先不要做验证点...可以循环了再加上去就可以了...
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-1-16 12:07:35 | 只看该作者
我也试了,数据池jsq中就设了一行数据,num1=1,num2=1,sum=2,结果回放时验证点显示失败,不知怎么回事呢?请教~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-3-13 17:15:43 | 只看该作者
自己也试了,就是不成功,好像值根本就没有从数据池里调出来
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-3-13 17:16:55 | 只看该作者
希望明白的人能指点一下,看是不是创建数据池的时候有什么特殊的地方?或是两者调用的时候有什么主意的地方?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-3-13 17:44:47 | 只看该作者
有试了一下,值是取出来了,可是验证点就是通不过,调试结果总是不对。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-3-13 17:58:41 | 只看该作者
有一个问题:我们自己在录制脚本的时候,那个验证点添加时的那个依据是从哪里取得(即:那个‘小手’所指的是什么类型的文件或什么标签),是TestDatastore\DefaultTestScriptDatastore\TMS_Datapools文件夹下所创建的数据池(.csv)文件么?   希望明白人给指点一下。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 01:40 , Processed in 0.083276 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表