cwglovecj 发表于 2009-4-23 11:14:45

求助

QTP里使用循环


我在测试一个.net开发的软件
一个页面有30多个文本编辑框,我想在第一个编辑框输入1,第二个编辑框输入2,依次类推,qtp捕捉到得脚本如下
SwfWindow("报表系统").SwfEdit("NumberBox").Set "1"
SwfWindow("报表系统").SwfEdit("NumberBox_2").Set "2"
SwfWindow("报表系统").SwfEdit("NumberBox_3").Set "3"
我想用循环语句怎么写,我用描述性语言,写qtp每次都会提示下一个编辑框在对象仓库里没有
请问大侠谁能指教一下 !
帮我写一下该怎么写循环语句以及使用描述性编程语言,以下是我的截图 只有swfname path 右面的值NumberBox:f2变化,第一个文本框为NumberBox:f1

假装不在 发表于 2009-4-23 11:18:03

原帖由 walker1020 于 2009-4-22 12:23 发表 http://bbs.51testing.com/images/common/back.gif
对于第三个参数Arguments,如何得到出错的那行脚本的所有参数? 如果有3个参数,通过判断,我知道第二个参数出错了,那么我需要改变这个参数的值,然后赋给它正确的值,脚本继续运行。这样的语句中脚本里面如何实现? ...

HI,很高兴今天早上看到你这个问题。我早上自己瞧了下。如果你需要了解的话可以这样做:
1,定义场景
设置的结果是任何错误。

2,测试对象与编写:(这个句子很明显有2个错误,1是HTML tag不是唯一的INPUT,因为有多个输入框。 2,set方法的错误)
browser("日志 - 51Testing软件测试网-中国软件测试人的精神").Page("日志 - 51Testing软件测试网-中国软件测试人的精神").WebEdit("html tag:=input").Set "123","123"

3,函数:
public function aa(Obj,Met,Arg,Res)
        msgbox typename(obj)      '显示对象
        msgbox met                  '显示这个方法
         For Each element In Arg   
         msgbox element             '罗列出所有的参数
         Next
         Arg(1)=null                '设置参数
        msgbox Res               '显示结果

end function

4,场景引入设置:
1),在setting里面设置是每一步
2),在场景设置的是反复运行当前行(这个主要是为了一会应证我们的方法是否可行。)

5,开始运行,结果:
HTML edit
set
123
123
-2147352562


HTML edit
set
123
123
-2147352562
.....


6,结果分析:
1)在这里我们可以看到得是我们不能在场景里面自己设置参数(反复第2次的场景出错还是“123”,而没有实现我们的set null)
2)最后一个的ERR 是针对QTP自己的错误编码查询出来得。不过我们也同样没办法通过设置ERR.NUMBER来实现显示我们要显示的ERR descript

假装不在 发表于 2009-4-23 11:26:00

原帖由 cwglovecj 于 2009-4-23 11:14 发表 http://bbs.51testing.com/images/common/back.gif
QTP里使用循环


我在测试一个.net开发的软件
一个页面有30多个文本编辑框,我想在第一个编辑框输入1,第二个编辑框输入2,依次类推,qtp捕捉到得脚本如下
SwfWindow("报表系统").SwfEdit("NumberBox").Set "1" ...


for i=0 to 30
   SwfWindow("报表系统").SwfEdit("name:=NumberBox.*"&i,"index:=0").Set i
next

lijinshui 发表于 2009-4-23 12:24:27

回复 23# 的帖子

object manage里面没有登录后面的纪录所以 用循环来处理好象有问题吧
我觉得还是用描述性好一些

lijinshui 发表于 2009-4-23 12:27:05

对了,我还有个想法就是
QTP能否实现多线程,这样就太好了
大家有没有好的办法:handshake

假装不在 发表于 2009-4-23 12:32:08

原帖由 lijinshui 于 2009-4-23 12:27 发表 http://bbs.51testing.com/images/common/back.gif
对了,我还有个想法就是
QTP能否实现多线程,这样就太好了
大家有没有好的办法:handshake


可以变相支持。::yxiao:::

lijinshui 发表于 2009-4-23 12:38:45

回复 26# 的帖子

太好了,最好给个简单的列子 ,耽误您几分钟,造福千万家,呵呵 辛苦了

xyteng 发表于 2009-4-23 14:44:46

原帖由 假装不在 于 2009-4-23 12:32 发表 http://bbs.51testing.com/images/common/back.gif



可以变相支持。::yxiao:::
举例说一下

walker1020 发表于 2009-4-23 17:27:19

本帖最后由 walker1020 于 2011-5-11 11:37 编辑

非常感谢 假装不在 在22# 的回复。 我理解你的意思,你是希望通过Arg(1)=null 后,让QTP运行 Set "123" 而不再运行原来的Set "123","123" 。 这个还需要进一步的尝试和研究。

walker1020 发表于 2009-4-23 17:28:47

To 假装不在

非常感谢你提到的For Each element In Arg    方法,我可以这样先得到所有参数的值,然后根据需要对参数重新赋值。

假装不在 发表于 2009-4-23 17:31:34

原帖由 walker1020 于 2009-4-23 17:28 发表 http://bbs.51testing.com/images/common/back.gif
非常感谢你提到的For Each element In Arg    方法,我可以这样先得到所有参数的值,然后根据需要对参数重新赋值。

其实早上我本来想用 .length属性然后做个for循环的,不过后来发现缺少对象。再typename才知道要用这个。

walker1020 发表于 2009-4-23 17:32:58

对于最后一个结论,由于你设置了Recovery Scenario,本来出现的错误信息就不会出现了,所以通过ERR.NUMBER得到的是空值, Err.Description 也是空值。 我曾经这样尝试过。

walker1020 发表于 2009-4-23 17:36:01

原帖由 假装不在 于 2009-4-23 17:31 发表 http://bbs.51testing.com/images/common/back.gif


其实早上我本来想用 .length属性然后做个for循环的,不过后来发现缺少对象。再typename才知道要用这个。

提示一下,得到字符串的长度使用 Len函数, 不是 Length 函数

假装不在 发表于 2009-4-23 17:36:47

::yxiao:::
对了,我突然想到一个方法可以做到。

public function aa(Obj,Met,Arg,Res)
if res=   then   '这里需要确定错误的类型是否是缺少对象或者方法参数不对等等类型再去对应操作
      select case met      '方法有set,click等等
      case :set
      object .set Arg(0)   '这里只是简单介绍这个如何重定义方法的参数而已。类似思想。
   .....
   .....
    ......
         end select
end function


自然,这个场景恢复需要设置成运行下一步。

假装不在 发表于 2009-4-23 17:39:25

原帖由 walker1020 于 2009-4-23 17:36 发表 http://bbs.51testing.com/images/common/back.gif


提示一下,得到字符串的长度使用 Len函数, 不是 Length 函数

哈哈,我前面有个点哦,是属性(原来没这个属性)。不过用LEN也是提示缺少对象。因为类型不匹配。

lijinshui 发表于 2009-4-25 12:40:58

回复 4# 的帖子

有人说关于监控异常QTP用Recovery Scenario来解决的,但感觉不是很好用。
反应有点延迟。当窗口跳出来以后,QTP的程序仍然在继续执行,
不知道大家的感觉咋样,如何处理得:handshake

ccl 发表于 2009-4-26 10:59:00

1个实例中,分了多个Action(如:action1、action2、action3),其中Action2有多个参数,单独执行此Action2时,为什么只能执行1次?怎么能执行多次、又能按其设定的参数值执行?

谢谢解答

chenna_0612 发表于 2009-4-27 21:41:45

就是 想要知道环境变量与一般的变量有什么不同~~定义它是要干啥的哦~~
谢谢楼主~~困惑了~~

lijinshui 发表于 2009-4-28 08:48:58

回复 37# 的帖子

如果单纯想测试action2的话,可以在main action里面做个循环 来调用action2 不就可以了   for i = 0 to n
                         RunAction action2
                  Next
不知道对不对,可以试试看

lijinshui 发表于 2009-4-28 08:53:50

回复 38# 的帖子

看看这个帖子http://bbs.51testing.com/thread-45908-1-1.html
页: 1 [2] 3 4 5 6 7 8
查看完整版本: 征集QTP的问题