Я использую 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"]}
Проблема заключается в том, что доступ к этим тестам не ограничены - эти тесты должны быть просмотренных людьми в других отделах.
Даже без этого, при условии, что пароль для тестовой учетной записи скомпрометирован, я не хочу, чтобы злоумышленник внезапно получил доступ администратора ко всему остальному.
Есть ли способ сделать это так, чтобы пароль не был сохранен/показан как обычный текст в командах?
Моя команда в настоящее время развлекает идею запуска отдельного сценария для активации/деактивации этих учетных записей, чтобы они работали только при выполнении функциональных тестов, но я хотел посмотреть, есть ли у кого-нибудь лучшее решение.
это выглядит многообещающий. Есть ли способ загрузить скрипт с локальной машины? И.Е. 'script.src = 'http: //localhost/path/to/password_script.js';'. – jperezov