0

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

UAT -> 分期 -> 生产

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

4

3 回答 3

0

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

要在远程环境中实际运行测试,您应该下载 Microsoft 测试控制器和测试代理(下载链接)。这是安装和配置代理的文档

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

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

我不记得实现这些的确切细节,但希望我至少能让你朝着正确的方向前进,这样你就可以进一步研究这些东西。

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

更新:

自从我从事测试自动化工作以来已经有很长时间了,所以我不记得我的实现细节,但据我所知,在我的系统中,我有一个 XML 配置文件存储在测试环境中(例如 C: \MyTestConfig\config.xml 具有各种配置选项的 XML 值,重要的是我要启动的 URL,例如

<browserUrl>http://localhost:1659/whatever</browserUrl>

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

于 2013-03-30T17:00:16.900 回答
0

如果你使用默认的测试生成器生成测试,你可以尝试在你的[CodedUITest]类上写这样的东西:

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

    this.UIMap.RecordedMethodXXParams.XXChWindowUrl = url; 
}

自动生成的位置RecordedMethodXXParams和位置。XXChWindowUrl您可以在UIMap类中检查生成的名称。

于 2013-05-03T17:33:02.260 回答
0

这为时已晚,但以防万一它对读者有所帮助。

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

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

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

使用构建定义的 Process>Build>Configurations 部分创建针对每个测试环境的测试代码(即编码的 UI 测试项目)的单独 CI 构建(即 trigger = checkin)。

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

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

于 2015-03-17T11:54:24.720 回答