j_ylove 发表于 2009-3-11 14:59:10

求助一个QTP登录参数化后迭代的问题

在下接触QTP不深,正在学习中,在编写一个登录页面脚本时,遇到问题,请各位大虾不吝赐教
目的是将将登录用户名,密码,验证码(测试时改成万能验证码了)参数化后读取DATATABLE里的数据来登录,验证登录功能
以下代码不会报错,但是只能读取第一行的数据,想实现循环功能以读取所有数据来登录


Dim status '定义一个状态参数
Dim text
Dim innerText'定义弹出的窗口内容

Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("name").Set DataTable("UserName", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("code").Set DataTable("code", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").Image("button").Click
status=DataTable("status",dtLocalSheet)
   '成功登录
If status="" then                  
Reporter.ReportEvent micPass, "成功","登录成功"
Browser("网维通流量管理系统").Close
DataTable.GetSheet("login").SetNextRow                                 '读取datatable中的下一个用户名和密码。
end if

'用户名或密码为空                                                                              (该种情况是win窗口弹出的提示信息)
ifBrowser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Exist then
    text=Browser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Static("不能为空").GetROProperty("Text")
   If text=status then
       Reporter.ReportEvent micPass, "失败",text
       DataTable.GetSheet("login").SetNextRow '                            读取datatable中的下一个用户名和密码。
   else
    Reporter.ReportEvent micFail,"异常","有错误"
   end if
   Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
   Browser("网维通流量管理系统").Close
    end if
   
'用户名或密码错误                                                                              (该情况是程序自己提示的信息)
if Browser("Browser").Page("page").Exist then
   innertext=Browser("Browser").Page("page").WebElement("WebTable").GetROProperty("innerText")
   
   iftrim(innertext)=status then
    Reporter.ReportEvent micPass, "失败",innertext
    DataTable.GetSheet("login").SetNextRow                                 '读取datatable中的下一个用户名和密码。
   else
    Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("Browser").Close
end if

j_ylove 发表于 2009-3-11 15:06:01

自己顶一下:)

j_ylove 发表于 2009-3-11 15:24:08

没人帮忙吗?麻烦斑竹来看下啊

angelna 发表于 2009-3-11 22:20:27

你的action里面的循环是不是只设置了一次?

angelna 发表于 2009-3-11 22:20:56

应该要读取所有行,而test工程是只循环一次

lc19840314 发表于 2009-3-11 22:23:19

回复 2# 的帖子

大概是没有循环语句的原因吧,我也是初学
推荐一个视频:http://www.boobooke.com/v/bbk2099/

ls_721521 发表于 2009-3-12 09:40:02

不知道你是想运行一次action就想把所有数据都跑一遍,还是运行一次action就跑一行数据?
前者要加个循环,后者把DataTable.GetSheet("login").SetNextRow 这个语句注释掉。

j_ylove 发表于 2009-3-12 13:15:00

回复 7# 的帖子

我想在这个ACTION里面循环依次读取DATATABLE里的所有数据

j_ylove 发表于 2009-3-18 15:50:31

自己搞定了
'SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe", "http://10.143.132.229:8080/TSM2"
Dim status '定义一个状态参数
Dim text
Dim innerText
Dim i
i=0
While i<DataTable.GetSheet("login").GetRowCount
wait 3
'MsgBox (DataTable.GetSheet("login").GetRowCount)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("name").Set DataTable("UserName", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("code").Set DataTable("code", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").Image("button").Click
status=DataTable("status",dtLocalSheet)


'   '成功登录
If status="" then      
Reporter.ReportEvent micPass, "成功","登录成功"
'Browser("网维通流量管理系统").Close
end if

'' 用户名或密码为空                                                                              (该种情况是win窗口弹出的提示信息)
status=DataTable("status",dtLocalSheet)
ifBrowser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Exist then
    text=Browser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Static("不能为空").GetROProperty("Text")
       If text=status then
       Reporter.ReportEvent micPass, "失败",text

      else
      Reporter.ReportEvent micFail,"异常","有错误"
      end if
   Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
   'Browser("网维通流量管理系统").Close
    end if
   
'用户名或密码错误                                                                              (该情况是程序自己提示的信息)
status=DataTable("status",dtLocalSheet)
if Browser("网维通流量管理系统").Page("page").WebElement("WebTable").Exist then
   innertext=Browser("网维通流量管理系统").Page("page").WebElement("WebTable").GetROProperty("innerText")
   
   ifinnertext=status then
    Reporter.ReportEvent micPass, "失败",innertext
'
   else
    Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("网维通流量管理系统").Back
'Browser("Browser").Close

end if

i=i+1
DataTable.GetSheet("login").SetNextRow()
wend
页: [1]
查看完整版本: 求助一个QTP登录参数化后迭代的问题