51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3134|回复: 14
打印 上一主题 下一主题

[原创] 我只想运行ACTION1一次,运行ACTION2多次,请问要怎么做呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-11-30 16:42:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT??

ACTION1为登录动作,
ACTION2为修改列表的动作.

我把ACTION2的某些记录参数化了(设计了两条记录),但是在运行的时候ACTION1,2都运行了两次.

但我只想运行ACTION1一次,运行ACTION2两次(因为有两条记录),请问要怎么做呢?

[ 本帖最后由 wawa133 于 2006-11-30 17:49 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-11-30 17:21:46 | 只看该作者
完成了.不知道这样写对不对呢??
取得数据库的记录数,用WHILE,然后,用IF语句判断rowcount值是否为0,是的话,就停止运行.
欢迎大家指正.谢谢!!

Dim rowcount
rowcount = DataTable.GetSheet("Global").GetRowCount
msgbox "the rowcount is " &rowcount

Browser("Browser").Page("****").WebEdit("loginForm:txtUserName").Set "linmh"
Browser("Browser").Page("****").WebEdit("loginForm:txtPassword").SetSecure "456e64e3af0977ff8a06cf532a0699c4ebc98b47"
Browser("Browser").Page("****").WebButton("ddd").Click

While rowcount>0
RunAction "Copy of Action1_2", oneIteration  '调用action2的操作,
rowcount=rowcount-1
  If rowcount=0 Then
        '  msgbox "the rowcount is :    " & rowcount  '提示框显示有记录数
             ExitRun(0)
  End If
  
Wend
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-11-30 17:59:32 | 只看该作者
sdlkfj9

错了...............运行后发现了问题................sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-11-30 21:06:32 | 只看该作者
call action 1
call action 2
call action 2

这样可以吗?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-11-30 22:11:43 | 只看该作者
action1 调用 action2
然后在action2中写一个循环的脚本搞定
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-12-1 08:32:50 | 只看该作者
嗯.是啊.我就是这样的.不过我之前已经CALL了一次了,但是删除不掉啊...
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-12-1 09:27:16 | 只看该作者
看你的例子,你是把参数值放在DataTable的吧
你可以试一下以下改进
1.把Test settings-->Run-->Datatable iterations设置为run one iteration only
2.把登录写一个可被调到的Action--Login
3.把功能写一个可被调用的Action--FunctionPoint
4.写一个Main Action,用来组织调度这两个子Action
RunAction "Login", oneIteration
Num=Datatable.GetRowCount
For i=1 to Num
  RunAction "FunctionPoint", oneIteration           
Next
这样就可以通过Mation Action进行循环控制
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-12-1 09:48:53 | 只看该作者
呵呵.行啊.我试试看.
不过这样的话,就需要用到三个文件了,是吗?

试了一下,确实是可以的.呵呵.谢谢版主啦.

不过我就保存了三个文件test,test1,test2
用了test去调用test1,test2里的action
这样的话,会不会产生很多文件呢?

我试过都写在一个文件里,但是用call的话,也会把login,function 都运行呢.

[ 本帖最后由 wawa133 于 2006-12-1 10:03 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-12-1 09:56:40 | 只看该作者
可以把这三个Action都放在同一个脚本里面
不过为了方便管理,也可以把可调到的功能脚本与组织脚本分开存放
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-12-1 10:26:50 | 只看该作者
如果设置了datatable, 在keyview中的指定action上点右键,设定acction call properties,选择run on all raws或run from row ****就可以针对action设置运行次数了,在9.0上是这样的,在8.0上就不知道了,这样就不用来回调用了吧?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2006-12-1 10:29:35 | 只看该作者
现在一个问题就是,我在DATATABLE里的A列在数据库中是可以一样的,B列是唯一的,但是在运行的时候,他的A,B两列不会同步修改,即,在A列中,如果数据库里有很多条一样的,他就选前面的,不管B列的值,但是如果这样的话,就不正确啦,
请问一下,要怎么做呢?
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-12-1 11:56:11 | 只看该作者
我试了一下你的做法,但是运行的时候取参数总是取第一个,怎么处理呢???

[ 本帖最后由 walker1020 于 2006-12-3 22:29 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-12-1 13:20:01 | 只看该作者
原帖由 风过无息 于 2006-11-30 21:06 发表
call action 1
call action 2
call action 2

这样可以吗?


me 2.
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2006-12-1 14:18:35 | 只看该作者
原帖由 sophia778 于 2006-12-1 11:56 发表
我试了一下你的做法,但是运行的时候取参数总是取第一个,怎么处理呢???

我的不会啊.
要不你加个
DataTable.SetNextRow()
试试看.


回复#10
因为我现在用的是8.2版本的.呵呵.所以没有你说的那个设置呢.

[ 本帖最后由 wawa133 于 2006-12-1 14:20 编辑 ]
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2006-12-3 22:29:54 | 只看该作者
    原帖由 sophia778 于 2006-12-1 11:56 发表
    我试了一下你的做法,但是运行的时候取参数总是取第一个,怎么处理呢???


    请参考 http://bbs.51testing.com/thread-14818-1-1.html
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 22:26 , Processed in 0.078988 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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