现在,我的编码UI测试使用它们的app.config来确定它们执行的域,它与环境具有1-1的关系。为了简化计算:在多种环境下执行编码的UI测试
- www.test.com
- www.UAT.com
- www.prod.com
和App.config中我有类似:
<configuration>
<appSettings>
<add key="EnvironmentURLMod" value ="test"/>
为了在不同的环境下运行测试,我手动更改了运行之间的值。比如我这样打开浏览器:
browserWindow.NavigateToUrl(new Uri("http://www."
+ ConfigurationManager.AppSettings.Get("EnvironmentURLMod")
+ ".com"));
显然这样不雅。我想我有一个愿景,我们会为每次运行放入一个新的app.config,但作为扰流器,这个测试将在〜10个环境中运行,而不是3个,并且它可能运行的环境可能会改变。
我知道我可以分离这些环境URL修改另一个XML文件,并测试顺序访问它们在data-driven scenario。但即使这似乎不是我所需要的,因为如果一个环境失败了,那么整个测试就会崩溃。我已经看到Environment Variables作为一个建议,但这需要为每个环境创建一个测试代理,修改其注册表,并在每个环境中运行测试。如果确实如此,但它看起来像是一个巨大的虚拟机带宽,用于收集字符串。
在一个理想的世界,我想这些URL MODS绑成类似测试设置,MTM环境,或构建。我想为每个域执行一套测试并单独报告。
总之,参数化这些测试的最佳方法是什么?有没有一种方法不涉及排队新建或删除配置文件?数据驱动测试的答案是什么?我是否错误地构建了我的解决方案?这似乎应该是这样一个常见的情况,但我的谷歌搜索并不能让我在那里。
任何及所有的帮助表示赞赏。