如何在测试自动化中从源代码中消除用户名和密码?

7

我编写测试自动化和脚本,需要使用Windows身份验证访问域。
我不喜欢将它们保存在app.config中,因为它们以明文形式可用。
我也不想提示输入,因为这样就不能自动化了。
如果我将它们硬编码到程序集中,它们将在.Net Reflector中可见,并且当我提交.cs文件时,它们会被检查到源代码控制中。
有没有一种模式/实践可以轻松使用配置的用户名和密码而不暴露它们。

这也适用于具有凭据登录的网站和使用Windows身份验证或SQL Server身份验证连接的数据库。
任何建议将不胜感激。

3个回答

1

这听起来像是一个可行的解决方案,特别是加密并将密钥存储在只有自动化程序才能访问的地方。 - Jeremy E
如果您可以将密钥存储在只有自动化工具才能访问的地方,那么将密码存储在那里不是更容易吗? - EKI

1

运行测试的过程可以将其作为已验证用户。这样,您只需要在设置服务/计划任务等时输入用户名和密码。当然,如果您必须在测试的一部分中实际输入凭据,则这将无法帮助。


你可以更进一步,设置一个加密的NTFS文件,其中包含SQL服务器登录密码。运行计划任务的用户帐户将能够读取加密文件的内容。根据我有限的NTFS加密理解,它可以配置为限制其他帐户对该文件的访问。 - poke
或者测试用户可以使用Windows身份验证连接到SQL数据库;这样,您就不必阅读任何密码。 - Jacob

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接