tho*_*olf 6 security authentication automated-tests password-protection protractor
我正在现有的Web应用程序上设置一组e2e测试。这要求在登录页面(邮件和密码)上自动登录。到目前为止,由于我仍在开发测试,因此我一直将测试帐户凭据以明文形式放在测试脚本中。我已经在每次提交之前手动删除了凭据,但是对于在某处的服务器上进行适当的自动化测试,它还是不成立的,也不能保证所有开发人员都能够在自己的计算机上舒适地运行测试。此外,测试需要能够以几组不同的用户凭据运行,并且凭据安全至关重要。由于我们需要测试访问权限,因此似乎无法避免至少拥有一个可以访问机密数据的测试帐户。
所以我的问题是:您知道或使用什么策略在开发人员机器,单独的服务器或两者上的测试环境中安全地存储和使用测试凭据?
我花了几天时间浏览网络(主要是StackOverflow,并多次尝试使用我的Google-fu)并询问同事,但没有找到任何已知和使用的策略来处理和存储测试中的凭证。我认为许多熟练的程序员一定已经以多种方式解决了这个问题。
StackOverflow提出了一些类似的问题,它们提供了一些有趣的策略:
我认为,不管实现细节如何,这个问题都是人们普遍关心的问题,但是无论如何,它们还是很有趣的。
我正在使用量角器来测试AngularJS应用,并正在考虑使用Grunt进行进一步的测试自动化。我们计划将测试连接到我们的Git服务器上,并让它在每次提交到master分支时都运行测试,以便我们知道它永远不会中断。或者,至少在测试期间不中断:)
当您说“安全存储和使用用户凭据测试环境的策略”时,我不确定您的意思是什么。您声明您的测试需要使用不同的凭据集运行。如果您的测试能够以明文形式获取凭据,那么在同一帐户下运行的任何其他应用程序/用户也是如此。
当然,您可以加密存储密码的文件,但您需要将加密密钥存储在应用程序或计算机上的某个位置,以便应用程序能够解密它。
您可以使用非对称加密来使用公钥加密任何凭据,并且仅向运行测试的帐户授予对私钥的访问权限。但是,任何能够在运行测试的帐户下登录的人都可以解密凭据文件并获取密码。
最好的选择是在测试中不要使用机密数据。我在一家做医疗软件的公司工作,我们有一个测试域,我们在其中使用知名帐户设置我们的软件,并使用虚假数据来测试它。
或者,如果您希望其他开发人员能够使用自己的凭据运行测试,您可以考虑切换到 Kerberos 并避免使用密码。
归档时间: |
|
查看次数: |
1285 次 |
最近记录: |