【发布时间】:2014-11-27 11:06:54
【问题描述】:
问题
我正在现有的网络应用程序上设置一组 e2e 测试。这需要在登录页面(邮件和密码)上自动登录。到目前为止,由于我仍在开发测试,我一直将测试帐户凭据以明文形式放在我的测试脚本中。我一直在每次提交之前手动删除凭据,但它不适用于在某处的服务器上进行适当的自动化测试,也不是所有开发人员都应该能够在他们自己的计算机上舒适地运行测试。此外,测试需要能够使用多组不同的用户凭据运行,并且凭据安全性至关重要。由于我们需要测试访问权限,因此我们似乎无法避免至少拥有一个可以访问机密数据的测试帐户。
问题
所以我的问题是:您知道或使用哪些策略来在开发人员机器、单独服务器或两者上的测试环境中安全地存储和使用测试凭据?
先前的研究
我花了几天时间浏览网络(主要是 StackOverflow,并多次尝试使用我的 Google-fu)以及询问同事,但没有找到任何已知和使用的策略来处理和存储测试中的凭据。我认为许多熟练的程序员一定已经通过多种方式解决了这个问题。
StackOverflow 友好地提出了这些有点相似的问题,这些问题提供了一些有趣的策略:
- Safely storing credentials when I need to retrieve the password for use,其中接受的答案建议加密配置文件。这似乎是一个非常有趣的想法,但我不清楚它在服务器和个人开发者计算机之间的分布情况,以及如何处理其后勤工作。
- Storing credentials for automated use,询问者通过说明他们只是将凭据作为明文放在受密码保护的服务器上的文件中来回应自己。这可能适用于单个服务器,但我认为如果将使用大量本地开发人员机器或单独的测试服务器进行测试,这会产生问题。
案例详情
我认为无论实施细节如何,这个问题都是普遍感兴趣的,但由于它们可能会引起人们的兴趣,所以无论如何都会在此处提供。
我正在使用protractor 测试AngularJS 应用程序,并且正在考虑使用Grunt 进行进一步的测试自动化。我们计划将测试连接到我们的 Git 服务器上,并让它在每次提交到主分支时运行测试,这样我们就知道它永远不会中断。或者,至少在我们的测试中没有破坏:)
【问题讨论】:
标签: security authentication automated-tests protractor password-protection