Visual studio 2010 如何在不同的环境下进行测试?

Visual studio 2010 如何在不同的环境下进行测试?,visual-studio-2010,coded-ui-tests,Visual Studio 2010,Coded Ui Tests,我们有一个web应用程序。我们希望在多个环境中运行相同的测试,以确保一切仍然正常工作 UAT->分段->生产 我们希望在每次部署到每个环境后运行这些测试。每个环境都有一个不同的URL。我在MTM中创建了三个测试计划。我只为UAT环境添加了测试用例,并在实验室中心创建了一个环境。顺便说一句,我用编码的ui测试记录了测试用例,并将它们关联起来进行自动化测试(仅限于UAT环境)。如何测试其他环境。如何在每次不更改录制或代码的情况下实现这一点?谢谢,您可能需要编辑编码的UI测试,以更改测试运行时启动的浏

我们有一个web应用程序。我们希望在多个环境中运行相同的测试,以确保一切仍然正常工作

UAT->分段->生产


我们希望在每次部署到每个环境后运行这些测试。每个环境都有一个不同的URL。我在MTM中创建了三个测试计划。我只为UAT环境添加了测试用例,并在实验室中心创建了一个环境。顺便说一句,我用编码的ui测试记录了测试用例,并将它们关联起来进行自动化测试(仅限于UAT环境)。如何测试其他环境。如何在每次不更改录制或代码的情况下实现这一点?谢谢,

您可能需要编辑编码的UI测试,以更改测试运行时启动的浏览器URL。当我在不同浏览器上执行自动编码的UI测试时,当测试开始时,我让它从每个测试环境的XML配置文件中读取,以获得正确的浏览器URL(以及任何其他相关的配置数据)。因此,换句话说,您至少需要一点代码来处理每个测试环境的不同URL或任何配置数据

要在远程环境中实际运行测试,应下载Microsoft测试控制器和测试代理()。以及安装和配置代理

这个想法是,您的主计算机(可能是主构建/测试计算机)安装了测试控制器,并且测试控制器远程连接到安装在您的测试环境中的测试代理,并启动自动编码的UI测试

Microsoft测试管理器还具有命令行选项,以便您可以计划自动测试(例如,您可以从Windows任务计划程序运行脚本)

我不记得实现这些的具体细节,但希望我至少能为您指明正确的方向,以便您可以进一步研究这些内容

使用测试代理自动化测试有很多细微差别,因此我准备在这方面投入大量时间

更新:

我已经很久没有使用测试自动化了,所以我不记得实现的细节,但据我所知,在我的系统中,我在测试环境中存储了一个XML配置文件(例如C:\MyTestConfig\config.xml,其中包含各种配置选项的xml值,重要的是我要启动的URL,例如

<browserUrl>http://localhost:1659/whatever</browserUrl>
http://localhost:1659/whatever
然后,我在测试项目中有一个类,该类在实例化时将获得配置XML文件(它将存储在每个测试环境中的相同位置),并读取值。虽然我已经很久没有这样做了,所以我记不起我的确切实现,但web上有大量文档可用于读取C#.NET中的XML。
从我的测试类中,我继承了读取配置值的类,然后从测试类中的测试设置方法中,这将使用XML文件中的浏览器URL启动浏览器并启动测试。如果您不知道如何创建测试设置方法,我将查看您正在使用的测试框架的文档使用(最有可能是Visual Studio单元测试框架,因为它默认用于编码的UI测试)。

如果使用默认的测试生成器生成测试,则可以尝试在
[CodedUITest]
类上编写类似的内容:

[TestInitialize()] 
public void MyTestInitialize() 
{ 
    // the url I could read from a config file
    string url = "http://stackoverflow.com/"; 

    this.UIMap.RecordedMethodXXParams.XXChWindowUrl = url; 
}

其中,
RecordedMethodxParams
XXChWindowUrl
是自动生成的。您可以在
UIMap
类中检查生成的名称。

这太晚了,但只是以防万一对读者有所帮助

为此,您不需要在MTM中创建多个测试计划或测试套件。您需要的是,构建足够智能,以便根据目标环境选择正确的配置。正如Ciaran建议的那样,您可以使用包含每个环境的所有详细信息的xml配置,然后编写一些过滤代码来过滤掉这些详细信息在目标环境上进行了扩展,但可维护性可能会变得有点困难。理想情况下,您希望app.config有一个xml布局,并根据目标环境为每个配置加载不同的值。app.config中的ie xml会根据目标环境进行转换

这正是为您所做的。实现这一点需要一些阅读和理解

完成所有转换后,使用visual studio中的“配置管理器”描述所有目标环境。您可以在visual studio中绿色开始/运行按钮旁边的下拉列表中找到它

使用生成定义的流程>生成>配置部分,针对每个测试环境创建测试代码(ie编码的UI测试项目)的单独CI生成(ie触发器=签入)

从测试管理器中为使用相同测试套件的每个目标环境创建实验室测试运行生成(即使用LabDefaultTemplate的生成)。确保每个生成都映射到流程工作流向导的生成部分中相应的CI生成


将所有构建排成队列,您将使所有构建同时在所有环境中运行,并且每个构建都能智能地选择正确的配置。

我使用测试代理和测试控制器。我有一个测试代理。我有一个问题。您说“我让它从每个测试环境的XML配置文件中读取,以获得正确的浏览器URL(以及任何其他相关配置数据)。“我该怎么做,你能给我举个例子吗?”ThanksI更新了我的答案。很抱歉,由于我从事测试自动化工作已经快一年了,所以没有实际实施的例子,但希望我至少能引导你朝着正确的方向前进。