【发布时间】:2016-02-11 20:03:58
【问题描述】:
我使用the Intern 进行功能测试。其中一项测试需要登录管理员帐户:
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"]}
问题在于这些测试的访问不受限制——这些测试需要其他部门的人查看。
即使没有这个,万一测试帐户的密码被泄露,我也不希望攻击者突然获得对其他所有内容的管理员访问权限。
有没有办法让密码不在命令中以纯文本形式存储/显示?
我的团队目前正在考虑运行单独的脚本来激活/停用这些帐户,以便它们仅在运行功能测试时工作,但我想看看是否有人提出了更好的解决方案。
【问题讨论】:
标签: functional-testing intern saucelabs browserstack leadfoot