51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2631|回复: 7
打印 上一主题 下一主题

[原创] QTP中的密码设置

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-13 14:36:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信很多人都在为自己录制的密码选项如何修改,并自动加载到密码栏中苦恼,我也在为这个伤神,今天摸索出了一点东西,先及时的传上来,免得以后忘了。
   我使用的是函数crypt.Encrypt,它好像具有将明文密码转换成加密密码,它在QTP帮助文档中的例子是这样的:
  pwd = "GetPasswordfromSomewhere"
  e_pwd = Crypt.Encrypt(pwd)
  Browser("dfgd").Dialog("pass").WinEdit("pwd").SetSecure e_pwd
    在实际的的脚本中我却没法实现这样的模式
   经过多次的修改最后总算是成功了,不过他要求的密码却是固定值源脚本是这样的:
  Browser("XXXXXX 版本号:V4.1.0.2").Page("XXXXXX:V4.1.0.2").WebEdit("password").SetSecure "4sd12gfdsg2fdhytryw3fs215adf"
   我修改了一下:
   dim pwd
   pwd=crypt.Encrypt ("000000") '输入固定的密码值
   msgbox (pwd) '用于检查转换后的密码值是否有效
  Browser("XXXXXX 版本号:V4.1.0.2").Page("XXXXXX:V4.1.0.2").WebEdit("password").SetSecure pwd
   我也曾这样修改,但是却不能输入到密码框中不知道是何原因:
   Dim passwrod,pwd
   Browser("XXXXXX 版本号:V4.1.0.2").Page("XXXXXX 版本号:V4.1.0.2").Sync
   Browser("XXXXXX 版本号:V4.1.0.2").Close
   passwrod=inputbox("please enter the password: ")
   pwd=crypt.Encrypt (password)
   msgbox (pwd)
   Browser("XXXXXX 版本号:V4.1.0.2").Page("XXXXXX:V4.1.0.2").WebEdit("password").SetSecure pwd ' 密码
   如果知道的麻烦告诉一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-13 15:15:07 | 只看该作者
应该是可以的,下面是Flight例子中的登录部分:

Dialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").Set "mercury"
pwd = Crypt.Encrypt("mercury")
Print pwd
'Dialog("Login").WinEdit("Password:").SetSecure "4c8dcdbc436c074cbff2706dc2e5018a76d5f597"
Dialog("Login").WinEdit("Password:").SetSecure pwd
Dialog("Login").WinButton("OK").Click

有可能是你的程序的加密算法不是标准的?

其实直接改用Set输入明文更方便些

[ 本帖最后由 TIB 于 2010-9-13 15:16 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-9-13 15:54:48 | 只看该作者
首先谢谢TIB的回复,但是你发现没有,你写的代码也是使用的是静态值:pwd = Crypt.Encrypt("mercury")   Print pwd  我需要动态的输入一个变量经行修改他的PASSWPRD。
   也就是需要这样写:pwd = inputbox("please enter the char:")
                                          password=crypt.encrypt(pwd)
                                          Dialog("Login").WinEdit("Password:").SetSecure password
set方法也使用过,根本就通不过,所以我选择使用crypt这个函数

[ 本帖最后由 samueloyang 于 2010-9-13 15:56 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-13 16:37:04 | 只看该作者
有关密码设置的问题解决有3种:
1。只需将原SetSecure 改成Set就可以了
2。可将密码部分作为参数化来处理,在DataTable中选中需要加密的数据,右键,选择Data,Encrypt
3。就是用Crypt来处理,也就是楼上所提供的了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-9-13 16:53:25 | 只看该作者
原帖由 samueloyang 于 2010-9-13 15:54 发表
首先谢谢TIB的回复,但是你发现没有,你写的代码也是使用的是静态值:pwd = Crypt.Encrypt("mercury")   Print pwd  我需要动态的输入一个变量经行修改他的PASSWPRD。
   也就是需要这样写:pwd = inputbox("please ...

试过了,也是可以的:
Dialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").Set "mercury"
pwd = inputbox("please enter the char:")
password=crypt.encrypt(pwd)
Print password
'Dialog("Login").WinEdit("Password:").SetSecure "4c8de4fbe06ef0d9be9b69bd9ba510acf9808684"
Dialog("Login").WinEdit("Password:").SetSecure password
Dialog("Login").WinButton("OK").Click

所以我怀疑你那边程序的加密不是标准的

[ 本帖最后由 TIB 于 2010-9-13 16:54 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-9-13 17:10:18 | 只看该作者
呵呵呵  谢谢各位的解释,这个问题已经解决了,的确如TIB所说的方法的却是可以的,但是在之前,就是不能实现。
    现在又有个新的问题:我们在使用这个的时候不能总是手工输入吧,我现在就想将它与datatable联系起来,这样就可以完整的实现自动化,但是我除了使用检查点来与datatable来连接,其它方法暂时还不知道,我想请教一下怎么样才能将
pwd = inputbox("please enter the char:")
password=crypt.encrypt(pwd)
Print password
与datatable或者是数据库联系起来测呢???
   期待中。。。。。。。。。。。。。
另外说明一下:如三楼所说的,使用set方法的却是没法,在脚本执行到这一步的时候,密码行更本就不执行。不知道是我设置有问题还是其它原因,至少是在我机子上测试是无效的哈。

[ 本帖最后由 samueloyang 于 2010-9-13 17:14 编辑 ]
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2014-12-19 21:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2010-9-13 23:21:14 | 只看该作者
    不明白楼主为什么非一定要用这种方法实现,明文不行吗?
    难道楼主怕别人看见了密码?
    这样的实现对于自动化测试有什么实际意义吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-9-14 09:21:46 | 只看该作者

    回复 7# 的帖子

    并不是我不想用明文形式  我也想啊  但是在回放的时候,明文形式的加载不到密码栏里面去啊。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-11 05:37 , Processed in 0.073240 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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