51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8211|回复: 27
打印 上一主题 下一主题

[Robot] 关于datapool中数据与验证点的关联问题,求助!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-4-14 09:38:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最近研究关于datapool的资料,在testmanager中打开datapool(已创建)->edit->出现"define datapool fields”和"edit datapool data"这两张表之间有什么关系(或作用)?datapool在哪里添加数据能与被测程序(VB)中所要验证的editBox中的数据做比较?望高手能帮小弟解决下谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

28#
 楼主| 发表于 2009-5-12 11:57:09 | 只看该作者
遇到新问题了。。。。。在比较字母时(验证点的第二种),Result = EditBoxVP (CompareText, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Type=CaseInsensitive")
基准值为error!
可这种验证点没有value值怎么比较?还是说是与数字的值比较机制不同?
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2009-5-5 14:41:28 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

26#
 楼主| 发表于 2009-5-5 11:33:26 | 只看该作者

回复 25# 的帖子

这个脚本被我放在一边很长时间一直没空去弄(学校规定的作业,并不是出于我本身意愿。我是学网站编程,测试以及robot这个工具还是第一次接触),而且这个脚本的功能我也清楚很基础,可是我至今我能查到的资料包括软件再带的help中没有关于这点问题的例子和说明,搞的我也不知道从哪里开始下手。不过还是谢谢你肯花时间帮我搞清这问题!
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2009-5-5 10:41:15 | 只看该作者
楼主,我完全照你的做法做了一个windows自带计算器的例子给你希望你能好好的研究一下,不难的,相信研究后对你很有用。另外真是佩服楼主的精神。自己一点都不想去想想的吗?
我的数据池数据是一列字段
2
6
8
脚本代码:
'$Include "sqautil.sbh"
Sub Main
    Dim Result As Integer
   
    'Initially Recorded: 2009-2-18  16:47:20
    'Script Name: test3
   
    Dim dp_id,dp_Result as long
    Dim Str1 as string
    Dim i as integer


    dp_id = SQADatapoolOpen ("51test", FALSE, SQA_DP_SEQUENTIAL, FALSE)
   

    call SQADatapoolFetch (dp_id)
    call SQADatapoolValue(dp_id,1,Str1)
   ' call SQADatapoolRewind (dp_id)
    msgbox Str1

   
    Window SetContext, "Caption=计算器", ""
    PushButton Click, "Text=1"
    PushButton Click, "Text=+"
    PushButton Click, "Text=1"
    PushButton Click, "Text=="
   

    Window SetTestContext, "Caption=计算器", ""
    Result = EditBoxVP (CompareNumeric, "ObjectIndex=1", "VP=Alphanumeric;Value=" & Str1)
    Window ResetTestContext, "", ""
    if Result=0 then
        sqalogmessage sqaWarning,"计算机验证失败",""
    end if
    msgbox Result

    call SQADatapoolFetch (dp_id)
    call SQADatapoolValue(dp_id,1,Str1)
    msgbox Str1
   
    Window SetContext, "Caption=计算器", ""
    PushButton Click, "Text=3"
    PushButton Click, "Text=+"
    PushButton Click, "Text=3"
    PushButton Click, "Text=="
   
    Window SetTestContext, "Caption=计算器", ""
    Result = EditBoxVP (CompareNumeric, "ObjectIndex=1", "VP=Alphanumeric;Value=" & Str1)
    Window ResetTestContext, "", ""
    if Result=0 then
        sqalogmessage sqaWarning,"计算机验证失败",""
    end if
    msgbox Result
   
    dp_Result = SQADatapoolClose (dp_id)
end sub
回复 支持 反对

使用道具 举报

该用户从未签到

24#
 楼主| 发表于 2009-5-3 16:27:06 | 只看该作者
问题出在哪?
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2009-4-30 17:25:17 | 只看该作者
我的datapool是
a
2
4
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2009-4-30 17:24:04 | 只看该作者

回复 21# 的帖子

第一个验证点通过了,但是第二个验证点中
Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value="&a)
这段在testmanager中出现"playback warning"导致测试错误,请问我在代码中是否设计的不符合要求?
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2009-4-30 16:04:13 | 只看该作者
试试
Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=" & a)
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2009-4-30 09:03:09 | 只看该作者
急需解决,请大家帮忙看看代码该怎么改才能让数据库中的数据和验证点的基值做比较~谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2009-4-27 16:28:52 | 只看该作者

回复 18# 的帖子

有道理,那应该怎么改?我“”的是验证点的名字和值没有单引a啊
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2009-4-27 11:09:30 | 只看该作者
你果然是这么改的,果然是这么改的……
Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=a")

其中 "VP=Alphanumeric;Value=a"    a此时已经做为一个固定的字符a被处理了。要知道a是一个变量怎么能用""引起来呢?
考虑一下吧,楼主。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2009-4-26 15:34:03 | 只看该作者

回复 16# 的帖子

'$include "sqautil.sbh"
Sub Main
    Dim Result As Integer
    Dim x as integer
    Dim dp as long
    dim expa as string
    'Initially Recorded: 2009-4-9  14:41:41
    'Script Name: nc
startapplication"d:\VB程序\VBapplication\VBapplication\bin\Debug\VBapplication.exe"
dp=SQADatapoolOpen("calculate")
'x=1
call SQADatapoolFetch(dp)
call SQADatapoolValue(dp,1,expa)


pushbutton click,"text=1"
pushbutton click,"text=+"
pushbutton click,"text=1"
pushbutton click,"text=="

   
    Window SetTestContext, "Type=Form;Name=Form1", ""
    inputkeys expa
    Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=a")
    Window ResetTestContext, "", ""
   
        
   
   
call SQADatapoolValue(dp,2,expa)   
pushbutton click,"text=C"   
pushbutton click,"text=2"
pushbutton click,"text=+"
pushbutton click,"text=2"
pushbutton click,"text=="

    Window SetTestContext, "Type=Form;Name=Form1", ""
    inputkeys expa
    Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=a")
    Window ResetTestContext, "", ""
   
   
           
    call SQADatapoolClose(dp)
    window CloseWin,"",""
   
        
End Sub
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-4-24 17:13:38 | 只看该作者
你是怎么改的?value=2将整段贴上来看看
Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=a")
这样改的吗?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2009-4-24 15:59:01 | 只看该作者

回复 14# 的帖子

已将value=2改为value=a,datapool中字段名a下的数据修改为2,4时回放结果仍然fail,感觉仍没有调用datapool的数据与textbox1(editbox)中的数据作比较有问题,请问代码上有问题吗?还是在参数设置上有问题
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-4-24 15:40:59 | 只看该作者
验证的基准值一般是在你录制一个验证点时会所记录下的值。比如做了一个图片的验证你所截取的图片区域会体现在ROBOT窗口的左侧,并且通过双击可以看到。此时这个就可以称为基线值。当回放时ROBOT会自动根据回放系统窗口的图片与基线图片进行比较。这就是验证点基制。包括图片、窗口、文字、剪贴版等等。你做的这个验证的基准值就是Value=(?)这里就是你的基准值,在回放时ROBOT会自动拿你的这个基准值与计算器中的editbox控件里的实际值进行比较。
而从datapool中取的值是灵活的,因为它的值可以存放很多,所以当你从DATAPOOL中取完一个值后,便可把取出的值做为基准值(方式就是value=datapool中取出的值)来与实际editbox中的值进行比较了。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-4-24 12:16:14 | 只看该作者

回复 12# 的帖子

原来如此,看了很多例子不是直接给value赋值就是没有"value"的,一直不懂数据池中的数据怎么和验证点做对比。inputkeys我看每个引用数据池的例子都有,以为是把数据池中的数据输入与需要被验证的值做比较。验证的基准值是怎么回事?为什么通过修改value的值就能测试通过还是失败?(我的意思是这个value值和基准值作比较,可基准值我没设过,难道是“1+1”系统生成的?)
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-4-23 15:08:26 | 只看该作者
你的脚本让我看的有些找不到北,不知你即然去数据池里取了值后干嘛不拿出来比呢?
pushbutton click,"text=1"
pushbutton click,"text=+"
pushbutton click,"text=1"
pushbutton click,"text=="
这几句应该是点击了计算器的几个按钮1+1=
Window SetTestContext, "Type=Form;Name=Form1", ""
inputkeys "{HOME}+{END}{DELETE}"&a
这两句是要实现什么?拿数据池中取出的值3再输入计算器中吗?为什么要这么做呢?
Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=2")
然后验证点验证你当前EditBox控件下的值,这时editbox值等于3,但是你验证的基准值是2,result返回肯定是0即验证失败。第二遍也一样的道理。
楼主还没搞清楚,上面那句验证语句的正确用法吧,参数"VP=Alphanumeric;Value=2"其中Value=的值是你验证的基准值。当从DATAPOOL中取出值后,应当拿这个值与editbox中的实际值进行比较。即value=a;这样你明白吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-4-22 17:22:01 | 只看该作者
有人能帮忙解决吗?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-4-20 14:39:10 | 只看该作者
是的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-6-27 03:04 , Processed in 0.085001 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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