c# - 安全存储用户凭据(用户名/密码组合)以用于自动化测试

标签 c# automated-tests credentials

问题

我正在创建一组自动化测试,需要提供用户名和密码才能登录到要测试的应用程序。我有一个函数 LogOnToApplication(string username, string password) 将登录信息作为字符串,并登录到应用程序。目前,我正在定义两个字符串:

string username = "username";
string password = "supersecretpassword";

并传递给我的函数

utilities.LogOnToApplication(username, password);

这对我的测试来说工作得很好,但我知道以这种方式这样做是有风险和不安全的。这些测试分布广泛,以这种方式设置我的测试很容易导致安全漏洞。

问题

从我的代码中删除 usernamepassword 字符串的最佳方法是什么?我考虑过创建一个单独的文件来存储这些信息,并在需要时从文件中提取信息,但这并不能解决问题,它只是重新定位了敏感信息。

最佳答案

您可以将它们放在 AppSettings 下的 App.Config 文件中,并使用 ConfigurationManager 获取它们

设置代码:

<appSettings>
  <add key="username" value="lol" />
  <add key="password" value="hunter2" />
</appSettings>

并访问它们

var username = ConfigurationManager.AppSetting["username"];
var password = ConfigurationManager.AppSetting["password"];

关于c# - 安全存储用户凭据(用户名/密码组合)以用于自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857739/

相关文章:

c# - Windows 窗体应用程序中使用的 CSCore 库

bash - 如何模拟控制台应用程序的键盘输入?

perl - 在 WWW::Mechanize 中设置基本身份验证凭据

credentials - Windows Server 2012 上的 IIS 8 错误权限不足

python - 使用 python SMTP 库凭据安全发送电子邮件

c# - WebRequest 相当于 CURL 命令

c# - Fluent NHibernate 组件映射问题

c# - DataGridView 是可编辑的,但不会使用 Entity Framework 将更改发送回数据库

javascript - Testcafe t.typeText 使用 { 粘贴 : true } by default

Selenium 与 HtmlUnit?