51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5347|回复: 11
打印 上一主题 下一主题

[求助] QTP中怎样把上次记住的密码做为下次的输出

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-15 17:16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实现功能:
     先用密码"111"登录,然后运行应用程序修改密码为"555",最后把修改后的密码"555"作为输出值(excel表中用admin表示)以供下次登录时使用.循环此操作4次,每次登录的密码由excel表中上次输出的admin值给出,循环中需要修改的密码由excel表中的psw给出(crm-psw表示confirm password)
附如下2图: 图1是QTP中编辑的数据表,把password和confirm password做为参数供循环使用.图2是最后输出的外部excel表,其中admin是最后的output value.
请问:怎样在下次登录时获取上次修改后的密码,并在此次运行中用数据表中给定的值修改密码.例:用555登录,用666修改密码,下次再用666登录,用12345修改密码.
谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-15 17:39:27 | 只看该作者
你的意思是这样么?
  1. '初始化密码
  2. psw = "111"
  3. '修正密码的四次循环
  4. For i=1 to 4
  5. '输入登陆用户名
  6.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebEdit("LoginID").Set "admin"
  7. '输入登陆密码
  8.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebEdit("LoginPW").Set psw
  9. '确认登陆
  10.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebButton("次  へ").Click
  11. ' 取得修改后的密码
  12.   psw = datatable.LocalSheet.value("cfm_psw")
  13. '修改密码
  14.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebEdit("ChangePW").Set psw
  15. '确定修改密码
  16.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebButton("OK").Click
  17. '修改密码成功并退出
  18.   Browser("お客さま口座情報 ログイン").Page("お客さま口座情報 ログイン").WebButton("logout").Click
  19. Next
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-11-15 22:29:20 | 只看该作者

回复 2# 的帖子

谢谢!我的意思是:
  (1) 先用default password:111登录,然后修改密码(password:555,confirm password:555),最后把"555"作为output value存入excel表供下次登录使用.
  (2) 用excel表中1行3列(即admin列)的"555"登录,用2行1,2列的psw,cfm_psw:666修改密码,在admin列输出"666"
    (3)用"666"登录,修改密码(password:12345,confirm password:12345),输出:12345
       (4)用"12345"登录,修改密码(password:yunhun,confirm password:yunhun),输出:yunhun
图1:psw列和cfm_psw是预先参数化的密码,用于修改密码(password和confirm password)时使用,admin代表output value,并不是登录用户名为"admin"
          请问:怎样在下次登录时获取上次修改后的密码,并在此次运行中用数据表中给定的值修改密码.怎样具体在datatable中指到某行某列?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-11-16 09:56:47 | 只看该作者
DataTable..getsheet("表id").SetCurrentRow i '指定行数
用datatable.getsheet("表id").getParameter("列id") '设置密码
DataTable..getsheet("表id").SetCurrentRow i - 1 '指定行数
用datatable.getsheet("表id").getParameter("列id") '使用密码

试试这样看性不
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-11-16 10:20:46 | 只看该作者
你把问题弄的太复杂了,是不是就是:
1.用同一用户多次登陆
2.每次登陆后修改改用户的密码
3.下次登陆使用新密码才能登陆

如果是这样的话,仅需要一列就可以了,没必要那么列,就像我上面帖子说的
还有如果使用datatable不方便的话可以使用Environment来保存密码!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-11-16 11:08:13 | 只看该作者
原帖由 coomon2000 于 2007-11-16 10:20 发表
你把问题弄的太复杂了,是不是就是:
1.用同一用户多次登陆
2.每次登陆后修改改用户的密码
3.下次登陆使用新密码才能登陆


对,就是这个意思! 我在每次修改密码后用 DataTable.Export("e:\testfile.xls")导出,然后开头再用 DataTable.Import("e:\testfile.xls")导入.下次登陆不知道怎样从导出的数据表中取新密码登录?
不好意思,刚学QTP,你能帮我再详细讲解一下吗?万分感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-11-16 11:19:45 | 只看该作者
恩,我也想知道怎么实现。。。等待高手们的指教。。。o(∩_∩)o...
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-11-16 11:33:58 | 只看该作者
俺来做个好人,说具体点
楼主把改密码的action录好,做成一个reused的action,比如名字叫changepswd,
输入参数有,
inp_username, 登录用户名
inp_password, 登录用的密码
inp_newpassword,要修改成的新密码

输出参数有,
out_newpassword, 修改后的密码

Action1调用changepswd
Action1的localsheet中设一列数据newpassword, Action1是"run on all rows"
Action1中的代码如下,这样你想改几次密码都可以了

注意用户名和原始密码没有参数化,如果需要的话自己可以参数化

If datatable.LocalSheet.getcurrentrow  = 1 Then
        RunAction "changepswd", oneIteration, "user1", "orginalpassword", DataTable("newpassword", dtLocalSheet)
Else
        RunAction "changepswd", oneIteration, "user1", Parameter("changepswd", "out_newpassword"), DataTable("newpassword", dtLocalSheet)
End If
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-11-16 16:07:52 | 只看该作者
原帖由 gy21st 于 2007-11-16 11:33 发表
俺来做个好人,说具体点
楼主把改密码的action录好,做成一个reused的action,比如名字叫changepswd,
输入参数有,
inp_username, 登录用户名
inp_password, 登录用的密码
inp_newpassword,要修改成的新密码

输 ...

谢谢gy21st详细的讲解,我按照此方法试着做了一下,运行时提示如图所示,请问怎么解决此问题?
另外changepswd这个操作中的datatable应该如何设置,是不是只用在datatable中参数化要修改的密码?
谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-11-16 17:59:14 | 只看该作者
直接使用关联.
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-11-16 19:58:28 | 只看该作者
原帖由 brighten 于 2007-11-16 16:07 发表

谢谢gy21st详细的讲解,我按照此方法试着做了一下,运行时提示如图所示,请问怎么解决此问题?
另外changepswd这个操作中的datatable应该如何设置,是不是只用在datatable中参数化要修改的密码?
谢谢!


上个帖子已经说的很清楚,action1的datatable中设置参数,changepswd的输入参数定义要做好。changepswd不需要作任何datatable的数据。

你的错误明显是changepswd参数定义出错了,个数不对。

另外你如果要导出到excel中,也可以输出到到action1的datatable中,例如
RunAction "changepswd", oneIteration, "user1", Parameter("changepswd", "out_newpassword"), DataTable("newpassword", dtLocalSheet), DataTable("changedpassword", dtLocalSheet)

你先把RunAction这个函数的帮助好好看看吧。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2007-11-19 14:49:37 | 只看该作者
原帖由 gy21st 于 2007-11-16 19:58 发表


上个帖子已经说的很清楚,action1的datatable中设置参数,changepswd的输入参数定义要做好。changepswd不需要作任何datatable的数据。

你的错误明显是changepswd参数定义出错了,个数不对。

另外你如果要导 ...

谢谢gy21st,还想继续请问你一个问题.我按照你的方法去做,结果第一次用初始密码运行成功,修改密码后再进行第2次调用,在密码登录时就出现了如图所示的错误
请问怎么解决这个问题.这个错误是不是说明第2次调用所用的输入参数out_newpassword没有作用?

可重用操作changepswd如下:
Dialog("...").WinEdit("Password:").Set Parameter("inp_password")
Dialog("...").WinButton("Next >").Click
Dialog("...").WinEdit("Password:_2").Set Parameter("inp_newpassword")
Dialog("...").WinEdit("Confirm Password:").Set Parameter("inp_newpassword")
Dialog("...").WinButton("Next >").Click
Dialog("...").WinEdit("WinEdit").Output CheckPoint("WinEdit")
Dialog("...").WinEdit("WinEdit").SetCaretPos 3
Dialog("...").WinButton("Finish").Click

action1如下:
If datatable.LocalSheet.getcurrentrow  = 1 Then
RunAction "changepswd", oneIteration, "111", DataTable("newpassword", dtLocalSheet)
Else
RunAction "changepswd", oneIteration, Parameter("changepswd", "out_newpassword"), DataTable("newpassword", dtLocalSheet)
End If
action1设置的datatable如下图

谢谢!

[ 本帖最后由 brighten 于 2007-11-19 15:01 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 19:45 , Processed in 0.091460 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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