51Testing软件测试论坛

标题: 好奇怪的问题,大家帮忙看哈这段代码 [打印本页]

作者: hehekouke    时间: 2008-3-12 15:20
标题: 好奇怪的问题,大家帮忙看哈这段代码
这是第一个action:CheckLogin
代码如下:
*********************************************************************************************************
Dim countNum
countNum=DataTable.GetSheet(dtLocalSheet).GetRowCount

For i=1 To countNum
Dim user,pw
user=DataTable("userName", dtLocalSheet)
pw=DataTable("password", dtLocalSheet)
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set user
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure pw
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 11,8

If  Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("SIGN-OFF").Exist Then
Reporter.ReportEvent micDone, "登录成功", "用户名和密码输入正确"
Else
Reporter.ReportEvent micDone," 登录失败"," 用户名或密码输入错误"
End If

Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("Home").Click
DataTable.GetSheet("CheckLogin").SetNextRow
Next
*************************************************************************************************
我在datatable中写了4组登录名和密码,
这段代码能够分别使用这4组登录名和密码进行登录;

如果我把其中的登录部分抽出来写成一个action:Login
代码如下:
*****************************************************************************************
Dim user,password
user=Parameter("userName")
password= Parameter("password")

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set user
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure password
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 11,8

If  Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("SIGN-OFF").Exist Then
Reporter.ReportEvent micDone, "登录成功", "用户名和密码输入正确"
Else
Reporter.ReportEvent micDone," 登录失败"," 用户名或密码输入错误"
End If
*******************************************************************************************************
然后在第一个action中调用它,代码如下:
***********************************************************************************************************
Dim countNum
countNum=DataTable.GetSheet(dtLocalSheet).GetRowCount

For i=1 To countNum
Dim user,pw
user=DataTable("userName", dtLocalSheet)
pw=DataTable("password", dtLocalSheet)

RunAction "Loign [Login]", oneIteration,user,pw

Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("Home").Click
DataTable.GetSheet("CheckLogin").SetNextRow
Next
************************************************************************************************************
同样在CheckLogin这个方法的datatable中写了4组登录名和密码,
这段代码也能使用4组登录名进行登录,但是后面的两组使用的是第二组的登录名和密码,
而第三组和第四组都没有使用到。

把RunAction "Loign [Login]", oneIteration,user,pw 注释掉,CheckLogin是能够取到这四组用户名的,
实在不知道怎么办了
大家帮哈忙好不?

谢谢啦*8

[ 本帖最后由 hehekouke 于 2008-3-12 15:38 编辑 ]
作者: hehekouke    时间: 2008-3-12 15:50
怎么大家都在忙哦
帮我看看好不?
我刚学习呢,很多地方不懂

作者: sunqiang1024    时间: 2008-3-12 16:01
当前的action的变量赋值只能作用于当前action,所以你在调用另一个action中变量是空的,无法运行,你可以加载一个vbs或qlf的头文件,在里面声明一个Public的变量,然后action都用这个变量就可以了。
作者: cdel    时间: 2008-3-12 16:01
RunAction "Loign [Login]", oneIteration,user,pw

oneIteration只循环一次吧
作者: tiger_86    时间: 2008-3-12 17:03
很好的 我要好好的学习了!我正在学习代码 呵呵
作者: hehekouke    时间: 2008-3-13 14:23
不大懂!可不可以说的具体些哦
作者: 鹭岛    时间: 2008-3-13 14:29
晕,这样肯定不行。。。。
你分开了后,RunAction "Loign [Login]", oneIteration,user,pw 执行一次呀
作者: hehekouke    时间: 2008-3-13 14:39
?具体点好不?
刚学习呢,呵呵
作者: hehekouke    时间: 2008-3-13 14:44
RunAction "Loign [Login]", oneIteration,user,pw
其实执行了四次
只是后两次的循环中使用的 用户名和密码跟第二次的一样。




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