51Testing软件测试论坛

标题: QTP登陆和注销只执行一次,预订操作执行两次,如何执行? [打印本页]

作者: wang_jxiang    时间: 2007-1-30 17:12
标题: QTP登陆和注销只执行一次,预订操作执行两次,如何执行?
[attach]19188[/attach]各位xdjm:
本人参照手册初学QTP,通过QTP自带的网站,将登陆、订票、注销等所有操作录制了一遍。将所有操作分为登陆、订票、注销三个操作。将预订的操作设为“可重用操作”。将订票操作中的出发地和到达地设置数据表参数。数据表中一共有两行数据。(1。London 到New York 、2。New York 到 Paris)。想通过QTP中自带的例子执行“登陆和注销只执行一次,预订操作执行两次”的操作。
经过多次操作,都报错sdlkfj7 ,我分析原因是“完成第一次预订操作后,无法返回到预订页面进行第二次预订”,不知道原因是否正确?也不知道该怎么办,望各位帮助解决此困惑。谢谢!

[ 本帖最后由 wang_jxiang 于 2007-1-30 19:32 编辑 ]
作者: wawa133    时间: 2007-1-30 17:53
没做过喔.不过你定下定单后,要执行第二次的订单,那么那个页面有没有改变啊?如果有的话,那么你要在代码后,添加一个转到订单页的代码.
作者: 风过无息    时间: 2007-1-30 18:09
订票做完以后加个新建的操作,这样就能循环了吧。
作者: wang_jxiang    时间: 2007-1-30 18:48
谢谢二位回复,
wawa133
我初学QTP,对脚本语言还不太懂.可否把您对此问题的语句贴出呢?谢谢了!
风过无息
对新建的操作要执行什么呢?我不太明白.而且我的QTP中没有新建操作这个命令或菜单.不知道为什么?
作者: 风过无息    时间: 2007-1-30 19:18
新建是指你在录制完订票这个action的时候,由于页面还在这个定票的页面所以QTP就不连贯了,假如你完成一次定票以后再点一下新建,这样就恢复到登陆以后的场景,程序就能继续跑下去了。
作者: kevin_swpi    时间: 2007-1-30 21:58
修改一下你的步骤
1.将所有操作分为登陆-A、订票-B、注销-C三个操作。
2.将登陆,注销两个步骤的操作设为“可重用操作”。
3.创建一个新的工程文件,插入A,B两个操作(这个是导入已经存在的可重用的ACTION   A和B)
4.插入C操作(这个是插入附本C),将C置于AB操作之间
5.将订票操作中的出发地和到达地设置数据表参数。数据表中一共有两行数据。(1。London 到New York 、2。New York 到 Paris)。
-------------步骤5应该注意一下就是要将C步骤的数据表设置为运行所有数据
6.运行脚本

-----PS:大概步骤就是这样,可能有一些细节的东西描述的不是很清楚,现在在家,有些东西都忘记了英文怎么描述了,呵呵,要是还有问题的话明天到了公司再来详细说一下:)

风过无息  说的关于顶票界面的连贯问题,也就是说循环的顶票这个步骤C一定要是开始和结束都在同一个界面的问题也很重要
作者: wang_jxiang    时间: 2007-1-31 08:47
谢谢kevin_swpi,昨天在家没办法试.所以没回复.谢谢了.我试试.如有问题在麻烦您和各位.呵呵.这个问题我昨天想了一天,想的头都晕晕的.谢谢了.
作者: wang_jxiang    时间: 2007-1-31 09:39
kevin_swpi
我不明白:1。你在第二步说是把登陆(A)和注销(C)设为可重用性操作.为什么到第三步的括号说明中说的是插入已存在的可重用性操作“登陆(A)操作和预订(B)操作”呢?
由于我不知道,你是不是由于大意写错了。我就改变了一些东西,例如:第三步我插入了登陆(A)和注销(C),在第四步插入了预订(B)操作的附本,将其置于AC之间:结果运行时出错了。麻烦您再帮我解答一下。谢谢了!
作者: hxa2010    时间: 2007-1-31 09:59
正确结果页面应该如附件所示,估计楼主对Action的布置有问题
作者: wang_jxiang    时间: 2007-1-31 10:04
kevin_swpi

照我上面的操作出错了,在报告中可以看到登陆其实执行两次,我想如果不是出错的话,注销也会执行两次的。
我又重新把你的方法改了一下。我只把预订设为可重用性操作。在新建的测试文件中,我插入的是登陆和注销的附本。插入已存在的可重用的预订(B)操作。这样的话,是没出错,但注销和登陆各执行两次。有没有办法让登陆和注销只执行一次,预订执行多次呢?而且我还有个问题:把操作进行划分后不是各操作有自己的数据表了吗?为什么要把数据表参数设为全局的。谢谢解答了!!!sdlkfj2
作者: wang_jxiang    时间: 2007-1-31 10:09
hxa2010谢谢了,你能否把你的步骤写出来让我参考学习一下呢。我试了好久了,还是没有达到最初的想法。谢谢了。
作者: kevin_swpi    时间: 2007-1-31 10:26
标题: 回复 #10 wang_jxiang 的帖子
1.将A  C设置为可再使用的动作(reusable actions),B不用设置为可再使用
2.创建一个新的脚本工程,insert-call to existing action  A 和 C 动作
3.insert-call to copy of action 将B调入脚本中来
4.这个时候就会有四个个工作表的,按照你的想法,就是要把B工作表的数据跑遍(即重复2次),操作如下
5.你在设置参数的时候,有个location in data table的选乡, 这个时候就应该选择current action sheet(local)选项,同时选B动作,右键 选择action call properties选项,将RUN下面的run on all rows 选中,  这样两个步骤就保证了B能循环执行完B的工作表中的所有的数据
6.对于你说的为什么不选择全局数据,那是因为你选择那个的话,A,C也将重复, 执行,这样也就失去了你split ACTION 的意义了

----不晓得我说的还有什么不明白的地方,好象在tutorial里有一个详细的例子
    如果还不明白就按照那里的一步步来,应该就能有点领悟的,呵呵
作者: wang_jxiang    时间: 2007-1-31 11:07
kevin_swpi,我仔细的照着操作步骤执行,还是出错了。麻烦你了,我都有点不好意思了,但问题没有解决,还是得麻烦您一下。请原谅。您再帮我分析一下原因。好吗?sdlkfj1
第二次执行到出发地时就报如下错误。
作者: kevin_swpi    时间: 2007-1-31 11:21
你把第二个文件的keyword view 粘贴出来吧

你加我也可以 MSN:huanggangkevin@hotmail.com
作者: Coffey111111    时间: 2007-1-31 11:23
在预订(B)操作上设置参数化,将你要预定的数据放 在sheet表中,你可以试试看可不可以的?sdlkfj5
作者: wang_jxiang    时间: 2007-1-31 11:46
图上发不上去sdlkfj7.我再试试吧.谢谢了.如有问题,一定要麻烦你们 了 sdlkfj5

[ 本帖最后由 wang_jxiang 于 2007-1-31 11:49 编辑 ]
作者: wang_jxiang    时间: 2007-1-31 12:32
成功了.谢谢各位了.sdlkfj3
作者: Coffey111111    时间: 2007-1-31 12:48
怎么解决的啊?是什么错误啊?sdlkfj5
作者: wang_jxiang    时间: 2007-1-31 14:48
是由于把页面给分错了.我分的页面回不到订票的那个页面.所以系统不能找到第二次设置的出发地.sdlkfj1




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