51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2931|回复: 3
打印 上一主题 下一主题

[原创] QTP执行过程对抛出窗口录入的密码的加密和录入的数据的获得

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-6-16 14:34:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有这样一种需求,就是在QTP回放的过程中需要抛出一个录入框,操作者录入的密码显示是加密的(*****的样子),但是要能在后面的脚本获取操作者输入的数据。
可能很多人要问,自动化的过程为什么要人去输入操作。
这里先把这个问题的前提阐述一下:
我们的脚本是全球共享的,每个tester都有自己的用户名密码 去访问那个脚本 所以在access脚本的前面就需要QTP 弹出一个交互的对话框让tester去登陆才能access到 脚本的专署的信息,却又不能看到其他人的信息。
经过核查QTP 目前没有发现可以加密的函数,vbs也没有内置的function来提供这种功能。
所以结决方案的思路就是调用IE来create masked对话框
代码如下: 只需要copy到QTP的专家视图,直接run就可以了(也可单独保存为VBS文件运行)
strPw = GetPassword( "Please enter your password:" )
msgbox strPw



Function GetPassword( myPrompt )


Dim objIE
' Create an IE object
Set ōbjIE = CreateObject( "InternetExplorer.Application" )
' specify some of the IE window's settings
objIE.Navigate "about:blank"
objIE.Document.Title = "Password"
objIE.ToolBar = False
objIE.Resizable = False
objIE.StatusBar = False
objIE.Width = 320
objIE.Height = 180


Do While objIE.Busy

Loop
' Insert the HTML code to prompt for a password
objIE.Document.Body.InnerHTML = "<DIV align=""center""><P>" & myPrompt _
& "</P>" & vbCrLf _
& "<P><INPUT TYPE=""password"" SIZE=""20"" " _
& "ID=""Password""></P>" & vbCrLf _
& "<P><INPUT TYPE=""hidden"" ID=""OK"" " _
& "NAME=""OK"" VALUE=""0"">" _
& "<INPUT TYPE=""submit"" VALUE="" OK "" " _
& "VBscrīpt:OK.Value=1""></P></DIV>"
' Make the window visible
objIE.Visible = True
' Wait till the OK button has been clicked
Do While objIE.Document.All.OK.Value = 0


Loop
' Read the password from the dialog window
GetPassword = objIE.Document.All.Password.Value
' Close and release the object
objIE.Quit
Set ōbjIE = Nothing
End Function



参考信息:
http://www.microsoft.com/technet/scrīptcenter/resources/qanda/feb05/hey0204.mspx
---------------------------------------------
另外
(1)如果在正常的情况下需要加密密码,QTP提供password encoder 可以generate 出加密后的string。
(2) 显示密码信息
抓取密码
      getROProperty(<Object Property the Stores the Password>) ...ie try getROProperty("Password")
显示信息
       MsgBox
(3)对某些列进行掩盖:
Browser("Browser").Page("Webpage").WebEdit("txtPassword").SetSecure ("User password")






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

使用道具 举报

该用户从未签到

2#
发表于 2008-6-16 16:34:49 | 只看该作者
是一个解决方法
但是其实这样并不能弄自动化哦
因为不可能每次都有人坐在电脑前面输密码的
所以这个需求有问题~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-6-16 17:28:42 | 只看该作者
QTP怎么没有提供加密的方法阿?
Crypt.Encrypt(Data)不是可以加密吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-6-16 23:59:42 | 只看该作者
原帖由 maguschen 于 2008-6-16 16:34 发表
是一个解决方法
但是其实这样并不能弄自动化哦
因为不可能每次都有人坐在电脑前面输密码的
所以这个需求有问题~~


好好看我前面写的对于这个东西需求的描述你就明白了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 05:48 , Processed in 0.085753 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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