51Testing软件测试论坛

标题: 如何比较两个function取出的值? [打印本页]

作者: kaifeng15    时间: 2010-10-26 10:22
标题: 如何比较两个function取出的值?
我写了两个function函数,function1取了A、B、C三个值,function1取了e、f、g三个值,请教下如何对A、B、C和e、f、g进行比较?
作者: sspku    时间: 2010-10-26 12:52
没明白楼主的意思  这些值是传入参数,还是返回的参数
作者: kaifeng15    时间: 2010-10-26 13:03
回复 2# sspku
返回的值啊,就是写了个函数,取了A\B\C三个值,这三个值需要拿出来与其他函数的值比较
可以返回多个值吗?(不用数组)
作者: msnshow    时间: 2010-10-26 21:10
目的是什么
作者: kaifeng15    时间: 2010-10-27 22:35
回复 4# msnshow

就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
main ()
{
    dim var_value(1)
    dim i
   var_value = A
   FOR  i = 0 to  1
   msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
     Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
}                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
  

    function A()
{
    dim value(1)
    value(0)=a
    value(1)=b
    A=value   /返回一个数组
}
作者: kaifeng15    时间: 2010-10-27 22:42
回复 4# msnshow

就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
main ()
{
    dim var_value(1)
    dim i
   var_value = A
   FOR  i = 0 to  1
   msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
     Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
}                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
  

    function A()
{
    dim value(1)
    value(0)=a
    value(1)=b
    A=value   /返回一个数组
}
作者: kaifeng15    时间: 2010-10-27 22:42
回复 4# msnshow

就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
main ()
{
    dim var_value(1)
    dim i
   var_value = A
   FOR  i = 0 to  1
   msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
     Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
}                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
  

    function A()
{
    dim value(1)
    value(0)=a
    value(1)=b
    A=value   /返回一个数组
}
作者: kaifeng15    时间: 2010-10-27 22:42
回复 4# msnshow

就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
main ()
{
    dim var_value(1)
    dim i
   var_value = A
   FOR  i = 0 to  1
   msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
     Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
}                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
  

    function A()
{
    dim value(1)
    value(0)=a
    value(1)=b
    A=value   /返回一个数组
}
作者: xieyang702    时间: 2010-10-29 14:42
dim var_value
    dim i
       
   var_value = A
   FOR  i = 0 to  1
   msgbox  var_value(i)  
     Next                              
                                


Public  function A()

    dim value(1)
    value(0)="a"
    value(1)="b"
    A=value  
End Function

这段代码可以运行的
作者: kaifeng15    时间: 2010-10-29 15:56
回复 9# xieyang702
谢谢,在QTP中好像不行的我再查查什么原因
作者: cswalkman    时间: 2010-10-29 17:19
楼主,QTP好像不支持C语言啊。。
作者: kavensyw    时间: 2010-10-29 18:11
本帖最后由 kavensyw 于 2010-10-29 19:13 编辑

用Dicitionary Object返回值
简单示意如下

Dim oDic1,odic2
Set oDic1 = CreateObject("Scripting.Dictionary")
Set oDic2 = CreateObject("Scripting.Dictionary")
Call GetData1(oDic1)
Call GetData2(oDic2)
oItems1 = oDic1.Items
oItems2 = oDic2.Items
'假定两边数量一致
'循环比较,去掉了左右空格
For i=0 To oDic1.Count-1
If Trim(oItems1(i))<>Trim(oItems2(i)) Then
     MsgBox "两边值不等:位置"&(i+1)&vbCrLf _
         &"左边-"&oItems1(i)&vbCrLf _
         &"右边-"&oItems2(i)                                
End If
Next
oDic1.RemoveAll
oDic2.RemoveAll
Set oDic1 =Nothing
Set oDic2 =Nothing

'Key存放a,b,c
'value存放e,f,g
Function GetData1(oDic)
        Dim a,b,c
        'Example               
        a=1:b=2:c=3        
        oDic.Add 1,a
        oDic.Add 2,b
        oDic.Add 3,c
End Function
Function GetData2(oDic)
        Dim e,f,g
        'Example               
        e=1:f=555:g=3  
        oDic.Add 1,e
        oDic.Add 2,f
        oDic.Add 3,g
End Function
作者: momang    时间: 2010-10-29 22:43
QTP  支持的 VBS
作者: kaifeng15    时间: 2010-10-31 21:49
回复 12# kavensyw

谢谢!
作者: xieyang702    时间: 2010-11-1 16:05
本帖最后由 xieyang702 于 2010-11-4 12:15 编辑

可以的呀,我就是在QTP里调试正确的啊

运行前你需 勾选 vb 插件
作者: Jun_Li    时间: 2010-11-8 13:22
1.  返回数组
2.  返回三个值的连接字符串
写个比较函数  传两数组  或  俩字符串
作者: vernzhang1980    时间: 2010-11-9 17:43
为什么不用VBS支持的StrComp方法呢,省时省力!




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