qtp参数化的时候如何让某个参数循环执行?
现在有两个参数,第一个参数个数不定,可能多可能少,第二个参数个数固定的,我想让执行第一参数的时候,第二个参数随机取或者循环取,如何做? 不是很明白你的意思,你可以发一个例子上来.说明
我有两个参数p_Location和参数p_Text,现在参数p_Location有10条数据,在参数p_Location有10条数据的同时p_Text 只有两中情况,即只有两个参数,如何设置参数参数p_Text 能让p_Location有的10个数据运行时,p_Text参数是随机的,或者循环执行这两个参数 原帖由 jieer213 于 2008-3-18 17:29 发表 http://bbs.51testing.com/images/common/back.gif我有两个参数p_Location和参数p_Text,现在参数p_Location有10条数据,在参数p_Location有10条数据的同时p_Text 只有两中情况,即只有两个参数,如何设置参数参数p_Text 能让p_Location有的10个数据运行时,p_Text ...
那你可以这样设计datatable
p_Location p_Text
1 a
2 b
3 a
4 b
我的方法是将p_Text参数设置
我的方法是将p_Text设置成DATA TABLE类型,选择Location in Data Table 时选择的是Current action sheet这样运行时选择参数结果是
p_Location p_Text
1 A
2 B
3 B
4 B
5 B
6 B
7 B
8 B
9 B
10 B
我希望的结果是,运行时参数选择如下:
p_Location p_Text p_Text
1 A 随机选取A 或B
2 B
3 A
4 B
5 A
6 B
7 A
8 B
9 A
10 B
回复 4# 的帖子
我就是想这样,但不知道如何设置,难道要这样手工写入p_Location p_Text
1 A
2 B
3 A
4 B
5 A
6 B
7 A
8 B
9 A
10 B
有没有自动的方法,我这个参数也是定期更新的,手工输入,日后的维护很麻烦,谢谢 我就是想这样,参数设置如下
p_Location p_Text
1 A
2 B
3
4
5
6
7
8
9
10
执行结果取参数是:
p_Location p_Text
1 A
2 B
3 A
4 B
5 A
6 B
7 A
8 B
9 A
10 B
那位大侠给个回复
不胜感激 一般来说,同一个data sheet中的数据最好行数一致,如果出现你这种情况,多加一个data sheet,将参数放在不同的data sheet中应该比较好解决。或者你也可以把p_Text参数定义成环境变量或常数,都很容易实现你的需求。 原帖由 gy21st 于 2008-3-18 18:35 发表 http://bbs.51testing.com/images/common/back.gif一般来说,同一个data sheet中的数据最好行数一致,如果出现你这种情况,多加一个data sheet,将参数放在不同的data sheet中应该比较好解决。或者你也可以把p_Text参数定义成环境变量或常数,都很容易实现你的需求。
感谢回复,两个疑问,第一不明白你说的“将参数放在不同的data sheet中应该比较好解决”是不是再定义一个action,第二把p_Text参数定义成环境变量,我尝试了,但不确定name 选择哪个,能不能说的详细点,谢谢
回复 10# 的帖子
1。添加一个datasheet并不需要定义action,手动添加或者用函数添加都没有问题2。定义成环境变量后就比较简单了,比如要实现你的随机选取,你可以生成一个范围在1~1000的随机数,随机数大于500,name就选A,否则就选择B。或者你可以根据第一个参数的值确定选A还是B,很多方法。
RandomNumber
可用随机数试一下,把参数二读到一个数组里,然后在数组里随机取值。如果是LR,就很容易实现了,Hoho... 把p_text的值定义成几个用户自己定义的环境变量的值,有两个就定义两个环境变量,如p_text1='A',p_text2='B',可以在setting的Environment中定义,然后在脚本当中,碰到要取p_text的值,就随机产生一个值(随机值的范围可以在0-2之间,包括2),取它的整数部分,如果为1则p_text=Environment("p_text1"),为2则p_text=Environment("p_text2"). 路过学习学习。
回复 13# 的帖子 我是刚刚学qtp,能不能麻烦再帮我看看我写的这个,执行不过去
Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set RandomNumber("p_Text")If p_text=1,p_text=Environment("p_text1"), thenp_text=2 , p_text=Environment("p_text2").
wait(3)
Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set Environment("p_Text_1")
wait(4)
Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set Environment("p_Text_1_2")
修改了程序,能正常执行,但执行结果只执行then后的语句
程序如下:Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set RandomNumber("p_Text")
说明:定义p_Text为随机数,设置from1 to2 选择 为每次测试循环
If 1 Then Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set Environment("p_Text_1_2") Else Browser("Browser").Page("jieer222的音乐小屋-").WebEdit("top_txtUserName").Set Environment("p_Text_1") End if
说明:定义两个环境变量("p_Text_1_2"),("p_Text_1") 希望p_Text=1 执行("p_Text_1_2"),否则执行("p_Text_1")
问题:
从运行结果看,执行过程中执行动作如下,为什么无论是1,或者2都执行的是p_Text_1_2
p_Text
1 p_Text_1_2
2 p_Text_1_2
2 p_Text_1_2
1 p_Text_1_2
我的方法是把参数写在txt或者excel中。
我的方法是把参数写在txt或者excel中。用qtp读取参数,再分别实现参数化了。
我不太喜欢用datatable,很麻烦,不如用外部数据驱动!
这样一来,我就很方便的可以取得任何需要参数化的数据,然后随心所欲的使用这些外部数据,而不是仅仅局限于qtp自带的datatable!
然后再结合setroporperty("")来给对象设置值。
[ 本帖最后由 MarsNoNo 于 2008-3-19 18:18 编辑 ]
问题解决,谢谢各位
问题解决,谢谢各位 刚看到消息,呵呵,解决了就好感觉还有一些解决方法
1。利用qtp参数化你的数据可以,但是遇到复杂的数据驱动并不是很方便,如果需要的话可以把excel倒出到sqlserver或者其他数据库中
然后写sql语句来方便的准备你的驱动数据,这样对datatalbe里面数据的操作就灵活些
2。另外可能这里可以用正则表达式来实现,定义个变量,对变量用正则表达式表示
具体的我也没试,看了http://bbs.51testing.com/thread-76208-1-1.html的帖子觉得可行,你有空可以试试看,不过会比较麻烦
[ 本帖最后由 flyfly310 于 2008-3-19 22:01 编辑 ] good
页:
[1]