我正在使用the Intern进行功能测试。一个这样的试验需要被记录到一个管理员帐户:在使用Intern/LeadFoot/Selenium的功能测试中隐藏密码
registerSuite({
name: 'login',
'login': function() {
return this.remote
.get(URL)
.findById('username')
.click()
.pressKeys(USER.ADMIN.USERNAME)
.end()
.findById('password')
.click()
.pressKeys(USER.ADMIN.PASSWORD)
.pressKeys('\n')
.end()
.findByCssSelector('.login-welcome')
.getVisibleText()
.then(function(text) {
assert.strictEqual(text, USER.ADMIN.NAME, 'User should now be logged in');
});
}
});
现在的问题是,这个口令传递为纯文本。这被显示在BrowserStack:
00:19 | 0 | Send a sequence of key strokes to the active element. | password
这是对SauceLabs相同:
COMMAND: POST keys
PARAMETERS: {"value":["password"]}
问题在于一个事实,即访问这些测试并不限制 - 这些测试需要由其他部门的人员查看。
即使没有,上关的机会,密码测试账号被泄露,我不想攻击者突然得到一切的管理员权限。
有没有什么办法让这个如图中的命令明文不存储密码/?
我的团队目前正在运行一个单独的脚本来激活/停用这些帐户,这样他们只能在运行功能测试时工作,但我想看看是否有人提出了更好的解决方案。
这看起来有希望。有没有办法从本地机器加载脚本? I.E. 'script.src ='http://localhost/path/to/password_script.js';'。 – jperezov