51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3300|回复: 8
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-11 14:59:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下接触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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-3-11 15:06:01 | 只看该作者
自己顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-3-11 15:24:08 | 只看该作者
没人帮忙吗?麻烦斑竹来看下啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2019-2-21 17:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2009-3-11 22:20:27 | 只看该作者
    你的action里面的循环是不是只设置了一次?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-2-21 17:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2009-3-11 22:20:56 | 只看该作者
    应该要读取所有行,而test工程是只循环一次
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-3-11 22:23:19 | 只看该作者

    回复 2# 的帖子

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

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-3-12 09:40:02 | 只看该作者
    不知道你是想运行一次action就想把所有数据都跑一遍,还是运行一次action就跑一行数据?
    前者要加个循环,后者把DataTable.GetSheet("login").SetNextRow 这个语句注释掉。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2009-3-12 13:15:00 | 只看该作者

    回复 7# 的帖子

    我想在这个ACTION里面循环依次读取DATATABLE里的所有数据
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 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)
      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
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 06:01 , Processed in 0.088190 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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