chj2046 发表于 2009-4-14 09:38:43

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

最近研究关于datapool的资料,在testmanager中打开datapool(已创建)->edit->出现"define datapool fields”和"edit datapool data"这两张表之间有什么关系(或作用)?datapool在哪里添加数据能与被测程序(VB)中所要验证的editBox中的数据做比较?望高手能帮小弟解决下谢谢!

村上舞!舞!舞 发表于 2009-4-14 19:01:57

define datapool fields是让你在创建数据池时定义你所创建数据池的字段
edit datapool data是编辑数据池里的数据
数据池创建好后。有相关的数据池函数来读取数据池中的基线数据,来和你的editBox中的数据值进行比较

chj2046 发表于 2009-4-16 16:45:57

回复 2# 的帖子

请问创建好后如何手动填加GUI编码可以实现与验证点信息(editBox中数据)相比较?

yeboming 发表于 2009-4-17 11:02:29

'$Include "sqautil.sbh"
Sub Main
    Dim Result As Integer
    DIm x AS Integer
    DIm dp AS long
    Dim num,name1,tel,adrr,state AS String
    Dim value1 As Variant
    'Initially Recorded: 2004/7/20と 11:07:33
    'Script Name: test
    dp=SQADatapoolOpen("dptest",FALSE,SQA_DP_SEQUENTIAL,TRUE)
    For x=1 to 3
    call SQADatapoolFetch(dp)
    Window SetContext, "Caption=材蝗︽笆て砞称恨瞶╰参-ㄏノ腹 :[ admin ] - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=Main",""
    Delayfor (2000)
   
    PushButton Click, "Type=PushButton;Name=btnAdd"
    EditBox Click, "Type=EditBox;HTMLId=Pub_ID", "Coords=52,7"
    call SQADatapoolValue(dp,1,num)
    InputKeys "{HOME}+{END}{DELETE}"&num
    EditBox Click, "Type=EditBox;HTMLId=Pub_Name", "Coords=8,13"
    call SQADatapoolValue(dp,2,name1)
    InputKeys "{HOME}+{END}{DELETE}"&name1
    EditBox Click, "Type=EditBox;HTMLId=Pub_TEL", "Coords=56,14"
    call SQADatapoolValue(dp,3,tel)
    InputKeys "{HOME}+{END}{DELETE}"&tel
    EditBox Click, "Type=EditBox;HTMLId=Pub_Address", "Coords=47,6"
    call SQADatapoolValue(dp,4,adrr)
    InputKeys "{HOME}+{END}{DELETE}"&adrr
   
    PushButton Click, "Type=PushButton;Name=btnaddok"
    Result = SQAGetProperty("Type=HTMLFrame;HTMLId=foot;\;Type=HTML;HTMLId=mnuBar1","innerText",value1)
    call SQADatapoolValue(dp,5,state)
    if value1<>state then
      msgbox("warning")
    end if
    'msgbox(value1)
   
    PushButton Click, "Type=PushButton;Name=btnaddcln"
   
    next x

    call SQADatapoolclose(dp)

End Sub


这是我以前写的一个关于抓去页面物件属性并与datapool中的值比较的脚本,没有加注释,而且时间太长了,也有些记不清GUI函数的具体内容了:L ,所以楼主就自己参照Robot的帮助看看吧(PS:这是关于B/S架构的,至于楼主的VB小程序,我不是太了解,楼主可以尝试用rational自带的sample程序录制C/S架构的)

chj2046 发表于 2009-4-17 13:47:32

回复 4# 的帖子

call SQADatapoolValue(dp,4,adrr)
其中adrr是datapool中name下的字段名,4是adrr下的数据吗?

yeboming 发表于 2009-4-17 14:29:39

回复 5# 的帖子

adrr是datapool中name下的字段名,4肯定不是adrr下的数据,是行数还是列数的我记不太清楚了,你在robot下输入SQADatapoolValue,按F1查一下吧

chj2046 发表于 2009-4-17 16:19:31

回复 6# 的帖子

好的,谢谢

chj2046 发表于 2009-4-20 10:31:53

以下为添加数据池和验证点的代码(测试计算器),其中datapool中a的数据为3和5,但回放后第一个验证点正确,第二个验证点错误,感觉并没有用到datapool中的数据做比较,求高手帮忙找找问题出在哪,谢谢!

'$include"sqautil.sbh"
Sub Main
    Dim Result As Integer
    Dim x as integer
    Dim dp as long
    dim a as string
    'Initially Recorded: 2009-4-914: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,a)


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

   
    Window SetTestContext, "Type=Form;Name=Form1", ""
    inputkeys "{HOME}+{END}{DELETE}"&a
    Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=2")
    Window ResetTestContext, "", ""
   
call SQADatapoolValue(dp,2,a)   
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 "{HOME}+{END}{DELETE}"&a
    Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=2")
    Window ResetTestContext, "", ""
         
    call SQADatapoolClose(dp)
    window CloseWin,"",""
         
End Sub

村上舞!舞!舞 发表于 2009-4-20 11:39:26

Result = EditBoxVP (CompareNumeric, "Type=EditBox;Name=TextBox1", "VP=Alphanumeric;Value=2")
这是你的验证点吗?

chj2046 发表于 2009-4-20 14:39:10

是的

chj2046 发表于 2009-4-22 17:22:01

有人能帮忙解决吗?

村上舞!舞!舞 发表于 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;这样你明白吗?

chj2046 发表于 2009-4-24 12:16:14

回复 12# 的帖子

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

村上舞!舞!舞 发表于 2009-4-24 15:40:59

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

chj2046 发表于 2009-4-24 15:59:01

回复 14# 的帖子

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

村上舞!舞!舞 发表于 2009-4-24 17:13:38

你是怎么改的?value=2将整段贴上来看看
Result = EditBoxVP (CompareNumeric, &quot;Type=EditBox;Name=TextBox1&quot;, &quot;VP=Alphanumeric;Value=a&quot;)
这样改的吗?

chj2046 发表于 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-914: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

村上舞!舞!舞 发表于 2009-4-27 11:09:30

你果然是这么改的,果然是这么改的……
Result = EditBoxVP (CompareNumeric, &quot;Type=EditBox;Name=TextBox1&quot;, &quot;VP=Alphanumeric;Value=a&quot;)

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

chj2046 发表于 2009-4-27 16:28:52

回复 18# 的帖子

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

chj2046 发表于 2009-4-30 09:03:09

急需解决,请大家帮忙看看代码该怎么改才能让数据库中的数据和验证点的基值做比较~谢谢!
页: [1] 2
查看完整版本: 关于datapool中数据与验证点的关联问题,求助!