【发布时间】:2021-03-23 06:31:51
【问题描述】:
目前我们已经在一个环境(开发)中设置了我们的 UI 测试自动化。我们正在使用 C#、.Net、Visual Studio、specflow 和 MSTest
配置
我们读取了一个app.config 文件以获取特定于环境的变量。我们使用 Azure Pipeline for CI 并在每晚构建中运行这些测试。
<configuration>
<appSettings>
<add key="DevApp" value="https://dev.websitename.com />
</appSettings>
<connectionStrings>
<add name="DevDatabase" connectionString="http://dev.url/" />
</connectionStrings>
</configuration>
现在我们也想在我们的 UAT 环境中运行这些测试。设置将是相同的,我们希望使用相同的数据运行相同的测试。唯一的区别是,对于 UAT,我们将指向不同的 URL 和不同的数据库。
例如
Dev env = https://dev.websitename.com
UAT env = https://uat.websitename.com
server name="DevDatabase" connectionString="http://dev.url/"
server name="UATDatabase" connectionString="http://uat.url/"
密码
在密码方面,out 应用程序是一个内部应用程序,我们使用 windows auth。因此,在我们的 dev 和 uat 环境中,我们为所有用户设置了相同的密码。所以在 Dev = devpassword 和 UAT = uatpassword
对于开发和测试,我们使用相同的用户,密码是唯一的区别。在测试时,我们使用模拟启动浏览器,并以该用户的“运行身份”启动浏览器
var service = ChromeDriverService.CreateDefaultService(driverpath)
如果用户不为空,那么我们这样做
var pwd = new SecureString()
service.StartDomain = Configurationhelper.Domain
service.StartupUserName = username
service.StartupPassword= = pwd
service.StartupLoadUserProfile = true
我们将域和密码以及其他环境变量作为常量存储在单独的配置文件中。
**主要问题:** 这现在不起作用,所以我认为最好将密码作为机密存储在 AZURE 管道变量中?如果是这样,我将如何更改此代码?例如
服务器团队、数据库团队和 devops 团队负责服务器、数据库设置和 url 等
所以对我来说,它只是通过我对配置的更改来配置测试自动化存储库
有什么优雅的方法可以做到这一点?
天蓝色管道
我们如何同时为这两种环境运行测试?并行我的意思是让两者都在夜间运行。我们的 Azure 管道有 2 个独立的客户端 UAT 和 DEV 指向同一个工件。两种环境的任务和变量是相同的,但显然具有不同的值
目前它们都将单独运行
【问题讨论】:
-
为了帮助您获得更准确的答案,请查看how not to ask。我很难看出你到底有什么问题,而不是寻找“优雅”的东西。
-
是的,对不起,。我现在添加了更多信息
-
对于任何感兴趣的人来说,这是解决方案stackoverflow.com/questions/65262975/…
标签: c# .net visual-studio automation specflow