51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4155|回复: 13
打印 上一主题 下一主题

[原创] QTP 把录制好的脚本切割成多个动作,怎么调用其中的一个

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-20 09:15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
把录制好的脚本切割成多个动作,action1;action2;action3····

action1和action3只执行一次,action2需要执行data table 中所有的数据···

该怎么设置才能调用action2···

麻烦给出详细的过程,我刚学QTP什么还不懂呢,入门教程看过了,还是不会
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-4-20 09:59:50 | 只看该作者
怎么没人回答啊,难道是我没表达清楚吗???
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-4-20 10:01:28 | 只看该作者
Insert - Call to Existing
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-4-20 10:16:47 | 只看该作者
这个好像是:插入呼叫的动作啊
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-4-20 10:23:12 | 只看该作者
我录制的脚本是一个web程序,录制的脚本有:登录和XX功能模块

XX功能模块需要使用data table 中的数据  (多个)

run时 每执行一次data table 中的一组数据,就需要执行一次登录

怎么跳过登录这个动作。只执行XX功能模块

动作已经分割:
登      录:action1
XX功能模块:action2
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-4-20 11:51:54 | 只看该作者
新建一个Action,然后在Acton中插入对Action1的调用和Action2的调用,Action2的迭代设置为AllRows
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-4-20 15:22:41 | 只看该作者
action1:
Browser("XXXX").Page("XXX").WebEdit("username").Set "admin"
Browser("XXXX").Page("XXX").WebEdit("password").SetSecure "4bcc1cfe3ad6845a98906f64385e31c7"
Browser("XXXX").Page("XXX").Image("imageField").FireEvent "onmouseover"
Browser("XXXX").Page("XXX").Image("imageField").Click 33,8
action2:
Browser("XXXX").Page("XXXX V1.0 --- Powered").WebElement("XX").Click
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("left").Link("XXX").Click
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main").WebButton("XXXX").Click
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebEdit("dmcod").Set DataTable("A", dtGlobalSheet)
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebEdit("dmcpt").Set DataTable("B", dtGlobalSheet)
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebEdit("field[description]").Set DataTable("C", dtGlobalSheet)
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebEdit("field[pindex]").Set DataTable("D", dtGlobalSheet)
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebEdit("field[remark]").Set DataTable("E", dtGlobalSheet)
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_2").WebButton("提交").Click
Browser("XXXX").Page("XXXX V1.0 --- Powered").Frame("main_3").Link("如果您的浏览器没有自动跳转,请点击这里").Click
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-4-20 15:26:23 | 只看该作者
6#的朋友,你说的我试怎么不行啊。效果是一样的啊···难到我设置错误了

7#是我的脚本,帮帮看看该怎么设···

重复迭代action2,不执行action1
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-4-20 15:38:23 | 只看该作者
这几天也刚开始学习qtp,试下这个方法,test flow 视图中,右击要重复运行的action,
选择action call properties-->Run on all rows,可以让acion重复运行多次。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-4-20 15:38:59 | 只看该作者
Action2不要设置为全局的DataTable,用Action2本身的DataTable
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-4-28 12:08:22 | 只看该作者
TIB说的对
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-10-25 13:30:36 | 只看该作者
如何对QTP迭代设置不理解或想只通过脚本实现 可以试试下面的脚本
-----------------Action1-------------

=======Action1的脚本代码=====
  runaction "Action2",oneiteration
  runaction "Action3",oneiteration
=======Action1的脚本代码=====

-------------Action2----------------------
datatable.getsheet("Action2")  注:在某个Action中默认调用对应的局部datatable的sheet,这句可以不写,如果调用其他sheet需要写这句
for i=1 to datatable.getrowcount
      datatable.setcurrentrow(i)
    ====使用sheet中此行数据的代码
  next

-------------Action3----------------------

=======Action3脚本代码========
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2011-11-7 15:15:07 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2012-8-3 09:47:54 | 只看该作者
路过!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-24 14:23 , Processed in 0.074260 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表