Проблема
Я создаю набор тестов e2e на существующем веб-приложении. Для этого требуется автоматическая регистрация на странице входа (пароль &). До сих пор, по мере того как я все еще разрабатываю тесты, я добавляю учетные данные тестовой учетной записи в cleartext в своих тестовых сценариях. Я удаляю учетные данные вручную перед каждой фиксацией, но он не будет использоваться для надлежащего автоматического тестирования на сервере где-нибудь, и если все разработчики должны иметь возможность запускать тесты с комфортом своих компьютеров. Кроме того, тесты должны иметь возможность запускать несколько разных наборов учетных данных пользователей, а безопасность учетных данных имеет решающее значение. Поскольку нам нужно проверить права доступа, кажется, что мы не можем избежать наличия хотя бы одной тестовой учетной записи с доступом к конфиденциальным данным.Стратегии безопасного хранения и использования среды тестирования учетных данных пользователей
Вопрос
Так что мой вопрос: Какие стратегии вы знаете, или использования, для безопасного хранения и использования тестовых учетных данных в средах тестирования на разработчиков машин, отдельных серверов, или как?
Предыдущие исследования
Я провел несколько дней озираясь в Интернете (в основном StackOverflow, и много попыток с помощью моего Google-фу), а также с просьбой коллег, но, не найдя каких-либо известных и используемых стратегий обработки и сохранение учетных данных в тестах. Я считаю, что многие опытные программисты должны решить эту проблему по-разному.
StackOverflow любезно предложил эти несколько подобные вопросы, которые предлагают некоторые интересные стратегии:
- Safely storing credentials when I need to retrieve the password for use, где принятый ответ рекомендует шифрование файла конфигурации. Похоже, это очень интересная идея, но мне непонятно, насколько хорошо это распределяет между серверами и отдельными компьютерами-разработчиками, и как можно справиться с логистикой этого.
- Storing credentials for automated use, где ответчик отвечает на них, заявляя, что они просто кладут учетные данные в виде открытого текста в файл на своем защищенном паролем сервере. Это может работать на одном сервере, но я считаю, что это проблематично, если для тестирования будет использовано несколько локальных машин для разработчиков или отдельные тестовые серверы.
специфика Case
Я думаю, что вопрос представляет общий интерес, независимо от деталей реализации, но так как они могут быть интересны они предусмотрены здесь в любом случае.
Я использую protractor для тестирования приложений AngularJS и рассматриваю Grunt для дальнейшей автоматизации тестирования. Мы планируем подключить тесты на нашем сервере Git и запускаем тесты при каждой фиксации на главную ветку, чтобы мы знали, что она никогда не ломается. Или, не нарушая во время наших тестов, по крайней мере :)
Очень хорошие моменты, которые у вас есть. Я думаю, мы будем стремиться запретить доступ к фактическим данным во время тестирования. Когда я писал «Стратегии безопасного хранения и использования среды тестирования учетных данных пользователей», я имел в виду сохранение их в нечеткой текстовой форме, а также избегая их размещения под контролем источника (т. Е. Избегая иметь много копий учетных данных, машины разработчика, тестовые серверы и сервер управления версиями). – NTAWolf