51Testing软件测试论坛

标题: 求助一个QTP登录参数化后迭代的问题 [打印本页]

作者: j_ylove    时间: 2009-3-11 14:59
标题: 求助一个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窗口弹出的提示信息)
  if  Browser("网维通流量管理系统").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")
   
   if  trim(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
自己顶一下
作者: j_ylove    时间: 2009-3-11 15:24
没人帮忙吗?麻烦斑竹来看下啊
作者: angelna    时间: 2009-3-11 22:20
你的action里面的循环是不是只设置了一次?
作者: angelna    时间: 2009-3-11 22:20
应该要读取所有行,而test工程是只循环一次
作者: lc19840314    时间: 2009-3-11 22:23
标题: 回复 2# 的帖子
大概是没有循环语句的原因吧,我也是初学
推荐一个视频:http://www.boobooke.com/v/bbk2099/
作者: ls_721521    时间: 2009-3-12 09:40
不知道你是想运行一次action就想把所有数据都跑一遍,还是运行一次action就跑一行数据?
前者要加个循环,后者把DataTable.GetSheet("login").SetNextRow 这个语句注释掉。
作者: j_ylove    时间: 2009-3-12 13:15
标题: 回复 7# 的帖子
我想在这个ACTION里面循环依次读取DATATABLE里的所有数据
作者: j_ylove    时间: 2009-3-18 15:50
自己搞定了
'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)
  if  Browser("网维通流量管理系统").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")
   
   if  innertext=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




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