51Testing软件测试论坛

标题: QTP的密码参数化问题有人碰到问题吗 [打印本页]

作者: kevinsir    时间: 2007-5-18 09:42
标题: QTP的密码参数化问题有人碰到问题吗
密码参数化,然后用的SetSecure语句,输入8位的纯数字参数的时候提示参数错误,输入9位纯数字参数时候都密码框是空的,其他都能正常,如果用语句set的话,一切正常,请问下有人碰到过这种情况吗
作者: stone821021    时间: 2007-5-18 09:46
你的问题描述的不是太详细呀!最好举几个例子说明一下,否则别人很难掌握你的情况!
作者: songfun    时间: 2007-5-18 09:54
密码参数化有两种方式,一种改用Set方法,一种用Crypt对象的Encrypt方法加密后再参数化。

因为SetSecure方法后面必须是加密的字符串,所以你输入的8位数字也好9位数字也好那都只是表示明文,并不是说SetSecure会根据你指定的这个字符串输入密码。
所以你这个时候可以改用Set方法来实现输入密码。

如果你一定要使用SetSecure方法,也可以。举例:
比如密码是 mercury,你用 Crypt.Encrypt("mercury") 可以得到一个值 "464d059be45f8d524b913574b017ed492a8b8d4b"

然后你在SetSecure后面要加上这串密文!而不是你的明文密码。
不知道你明白了没有?


原帖由 kevinsir 于 2007-5-18 09:42 发表
密码参数化,然后用的SetSecure语句,输入8位的纯数字参数的时候提示参数错误,输入9位纯数字参数时候都密码框是空的,其他都能正常,如果用语句set的话,一切正常,请问下有人碰到过这种情况吗

作者: winfood    时间: 2007-5-18 09:56
好像对SetSecure方法的理解不对吧?这个方法的参数怎么会有8位或者9位呢。

SetSecure方法:
object.SetSecure Text
其中的参数Text,是QTP对密码的明文经过加密算法生成的一个字符串。其目的是保护测试脚本和测试数据中的密码信息。

生成Text字符串的方法:
1. 录制方式
QTP录制脚本的时候,遇到密码输入的WebEdit类型。QTP自动生成
WebEdit("***").SetSecure "***************"
2. 手工方式
QTP工具里面有一个Password Encoder,输入代码明文,可以Generate一个加密后的字符串。
这个字符串才是SetSecure的参数。这个工具可以从开始菜单的QTP程序组里面找到。
作者: kevinsir    时间: 2007-5-18 10:12
谢谢3楼的,那个方法我用了,可以,但是问题是,为何我不加密的话,有的密码是对的,比如123456这样的密码,我输入的话,就正确,但是12345678就会提示我参数不正确,而123456789则在密码框里是空白
作者: stone821021    时间: 2007-5-18 10:20
我在想你是不是想表达这样的意思,那你用正确的用户名比如username_a和正确的密码比如123456,不管你用set"123456"还是setsecure"123456",脚本运行后,都能正确的登入页面?
而当你用正确的用户名username_b和正确的密码12345678时,用set或setsecure就会提示参数错误?
作者: kevinsir    时间: 2007-5-18 10:22
恩,对,当username_b和正确密码12345678时用set是对的,用setsecure就 提示参数错误
作者: songfun    时间: 2007-5-18 11:55
兄弟你钻牛角尖了。
确实如你说的用12345678是对的,那是因为SetSecure这个方法在设置尝试失败之后会自动启用Set方法。
密文具有一定的特征性,而这个方法可以自行判断。

其实你没有必要在这个问题上钻牛角尖,真的。



原帖由 kevinsir 于 2007-5-18 10:22 发表
恩,对,当username_b和正确密码12345678时用set是对的,用setsecure就 提示参数错误

作者: milan330330    时间: 2007-5-18 14:44
看了版主的回复,又学了点~~谢谢~~




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