【发布时间】:2020-12-12 08:27:13
【问题描述】:
基本上,我们在一个环境 (DEV) 中设置测试自动化。对于这种环境,我们使用用户凭据打开浏览器进行所有测试。因此,在我们的开发环境中,我们为所有用户设置了相同的密码。这与 UAT 中的方法相同,但密码不同
在测试时,我们使用模拟启动浏览器并将浏览器作为该用户的“运行方式”启动
private static RemoteWebDriver OpenChromeBrowser(string username) {
var service = ChromeDriverService.CreateDefaultService(driverpath)
如果用户不为空,那么我们这样做
var pwd = new SecureString()
service.StartDomain = Configurationhelper.Domain
service.StartupUserName = username
service.StartupPassword= = pwd
service.StartupLoadUserProfile = true
我们将域和密码以及其他环境变量作为常量存储在单独的配置文件中。
我们的 Azure 管道现在有 2 个独立的客户端 UAT 和 DEV 指向同一个工件。两种环境的任务和变量相同,但 url 和 db 连接的值不同
主要问题:这现在不起作用,因为当我们在 UAT 中运行测试时,它们会立即失败,并显示“密码不正确”,因为我们已将密码硬编码到我们的代码中。所以我正在寻找最好的解决方案
有没有办法修改此代码并将密码作为机密存储在 AZURE 管道变量中?因此,例如在我们的管道变量中,我们将拥有 Dev 和 UAT 的密码。然后启动 chromedriver 并将用户凭据设置为 azure 管道中的变量?
在这种情况下推荐的方法是什么?
【问题讨论】:
标签: c# azure automation azure-devops