51Testing软件测试论坛

标题: 怎样参数化飞机订票的点选按钮 [打印本页]

作者: liweilovend    时间: 2009-9-3 17:16
标题: 怎样参数化飞机订票的点选按钮
在QTP的C/S订票系统测试中,我想对选择是头等舱/经济舱/商务舱,这个单选按钮进行参数化。我的想法是产生一个随机数,然后在Set时,用一个随机变量来代替。
Window("Flight Reservation").WinRadioButton("Business").Set
我的随机变量产生方法如下:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
        If      x1="1"  then  x2="Business"
        else if x1="2"  then  x2="Economy"
        else    x1="3"  then  x2="First "  
End if
Window("Flight Reservation").WinRadioButton(x2).Set
结果在保存时,一直提示我语法错误。我研究了一下,始终不知道问题出在哪里?请高人指点。出错信息见截图。
作者: liweilovend    时间: 2009-9-3 18:17
自己先找到一种解决的办法,见论坛中的这个帖子。不过我的方法理论上应该是可以的啊!还得请高手指点一下!
作者: liweilovend    时间: 2009-9-3 18:17
http://bbs.51testing.com/viewthr ... amp;highlight=radio
作者: dreamsea123    时间: 2009-9-3 19:13
参数化需要用描述性变成,比如
WinRadioButton("Business").Set
应该改为WinRadioButton(某属性:=变量).set
这样才是有效的,否则按照楼主的写法是没有办法找到对象的。
作者: joseph_wh    时间: 2009-9-3 23:39
原帖由 liweilovend 于 2009-9-3 17:16 发表
在QTP的C/S订票系统测试中,我想对选择是头等舱/经济舱/商务舱,这个单选按钮进行参数化。我的想法是产生一个随机数,然后在Set时,用一个随机变量来代替。
Window("Flight Reservation").WinRadioButton("Business").Set
我的随机变量产生方法如下:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
        If      x1="1"  then  x2="Business"
        else if x1="2"  then  x2="Economy"
        else    x1="3"  then  x2="First "  
End if
Window("Flight Reservation").WinRadioButton(x2).Set
结果在保存时,一直提示我语法错误。我研究了一下,始终不知道问题出在哪里? ...


你有2个 If,只有一个 End If
作者: sy070904    时间: 2009-9-4 00:29
是因为缺少end if 的原因吗?说实话,接触qtp快两个月了,我还不知道if是怎么用的.
作者: liweilovend    时间: 2009-9-4 10:21
首先谢谢dreamsea123和josehp_wh的回答!4楼的说法我明白,可是问题是出现语法错误的地方不是那句话,而是几个if else的语句!我按照5楼说的方法,我加了endif,还是报错!不知道原因!另外附上最终的解决办法!没有用if else语句来实现,使用了select case的方法实现了随机选取的目的。代码如下:
Dim i,b
i=RandomNumber(1,3)
    Select Case i
        Case 1 b="First"
        Case 2 b="Business"
        Case 3 b="Economy"
    End Select
Window("Flight Reservation").WinRadioButton("First").SetTOProperty"text",b
Window("Flight Reservation").WinRadioButton("First").Set
同时希望再有高人指点一下我之前的方法是什么地方出错了?
作者: liuxl    时间: 2009-9-4 15:24
最后一个else也应该加if
        If x1="1"  then  
               x2="Business"
        elseif x1="2"  then  
               x2="Economy"
        elseif    x1="3"  then  
               x2="First "  
         End if
作者: liweilovend    时间: 2009-9-9 18:09
谢谢,liuxl,用了您的方法,也还是有语法错误!不过还要谢谢你!
作者: 风雪夜归人    时间: 2009-9-9 18:27
If x1="1"  then  
               x2="Business"
        elseif x1="2"  then  
               x2="Economy"
        else
               x2="First "  
         End if


这样试试,不行的话,就把End If给删掉,再写个end if,我也常遇到这样的问题,就是删掉end if ,再加上就好了,实在不行,重启QTP试试
作者: 风雪夜归人    时间: 2009-9-9 18:28
另外,写代码的时侯,要分清层次,别搅在一行
作者: liweilovend    时间: 2009-9-10 10:23
标题: 回复 10# 的帖子
非常感谢风雪夜归人.先谢谢你,我在你的指导下,终于发现了问题的所在!以下附上最终的解决办法:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
    If             x1="1"   then  
                    x2="Business"  
    else if    x1="2"   then
                    x2="Economy"
    else            x2="First "  
   end if
   end if
Window("Flight Reservation").WinRadioButton(x2).Set
另外谢谢以上所有的热心的朋友们!此问题已解决。




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