自动化测试和多种配置

时间:2013-10-22 11:18:07

标签: tfs tfs2012 coded-ui-tests microsoft-test-manager

我正在使用Microsoft Test Manager 2012来创建和运行自动和手动测试。我已经定义了两个配置:一个用于我的测试,应该在SQL Server上运行,另一个用于应该在Oracle上运行的测试。

当我创建测试用例时,MSTM会自动创建两个测试:一个用于Sql Server,另一个用于Oracle。它们具有相同的ID,这意味着它们是相同的测试。到现在为止还挺好。这就是应该发生的事情。

但我想自动完成两项测试。当我创建代码并将其与测试用例相关联时,两个测试都会获得自动代码。这很糟糕,因为我希望测试1在SQL上运行,测试2在Oracle上运行,他们共享相同的测试代码。

这是否意味着我必须在我的测试中加入一些逻辑,以便他们知道应该在哪个数据库中运行?有没有更好的方法来避免这种情况?

1 个答案:

答案 0 :(得分:1)

选项1
创建两个不同测试用例,一个用于SQLServer,一个用于Oracle,然后首先通过 Test1 进行自动化,第二个通过 Test2 <进行自动化/ em>的。因此,您可以通过使用 DefaultLabTemplate11 单个构建定义来运行它们。

使用建议的方法,测试代码不必实现额外的逻辑,以便识别它们应该运行的数据库。

您说您希望将测试用例用于手动和自动测试,因此我认为您今天拥有的测试用例包含多个测试描述如何手动运行测试的步骤 在这种情况下,您可以克隆现有的测试用例并使用共享测试步骤,但在添加/删除时仍需要更新测试用例一些测试步骤 ......这将是建议方法的唯一缺点。

为了摆脱这个缺点,你可以创建&#34;手动数据库测试&#34; 测试用例,分配您已经拥有的两个配置,并仅将其用于手动测试。此测试用例将包含测试人员的所有测试步骤 然后创建两个上面描述的测试用例,自动化它们并仅将它们用于自动化测试。

选项2
如果您的测试环境是虚拟机,则可以避免创建两个测试用例

  1. 将连接字符串存储在测试环境中的文件中,让测试读取此文件。
  2. 创建两个快照:第一个包含SQLServer连接字符串的文件,第二个包含Oracle连接字符串。
  3. 创建两个构建定义,将环境恢复为第一个快照,第二个将其恢复为第二个快照。
  4. 通过这种方式,您可以保留单个测试用例但另一方面,如果构建定义应该在部署和运行测试之前构建源代码,则有两个构建定义可能会变得不方便。

    嗯......第三个选项是在测试中实现额外的逻辑,以便识别它运行的数据库 但在这种情况下,您还必须创建两个构建定义,因为您有两个配置,并且每个构建定义只能选择一个。

    (我希望我能够很好地描述它,不要犹豫,问一些事情仍然不清楚。)