演练:为 Silverlight 应用程序创建、编辑和维护编码的 UI 测试

通过使用 Microsoft Microsoft Visual Studio 2010 Feature Pack 2,您可以为 Silverlight 4 应用程序创建编码的 UI 测试或操作录制。 利用操作录制,可以加快执行手动测试步骤。 有关操作录制或编码的 UI 测试的更多信息,请参见如何:创建操作录制如何:创建编码的 UI 测试

在本演练中,您将了解在基于 Silverlight 的应用程序中测试 Silverlight 控件所需的过程。 本演练将指导您进行以下过程:

  • 准备进行演练 确保您已安装 Silverlight Developer 运行时并创建一个使用 Silverlight 网格控件的简单 Silverlight 应用程序,将对该网格控件执行编码的 UI 测试。 您将按演练:创建 RIA Services 解决方案中的步骤执行操作。

  • 将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 添加到 Silverlight 项目。

  • 创建编码的 UI 测试   在 Silverlight 应用程序上创建编码的 UI 测试。

  • 运行编码的 UI 测试   确认编码的 UI 测试能在 Silverlight 应用程序上正常运行。

系统必备

本演练需要:

准备进行演练

准备演练

  1. 确认 Silverlight Developer 4 for Developers(面向开发人员的 Silverlight Developer 4)上提供了 Silverlight 4 Developer 运行时。

  2. 确认已完成演练:创建 RIA Services 解决方案中的过程。

    这将生成一个使用 Silverlight 网格控件的简单 Silverlight 应用程序。 稍后,您将在本演练中使用该网格控件,并对其执行编码的 UI 测试。

    提示

    有关以下内容的更多信息支持的和不受支持的 Silverlight 控件的更多信息,请参见如何:设置 Silverlight 应用程序以进行测试

  3. 在运行您在演练:创建 RIA Services 解决方案中创建的 RIAServicesExample 时,会将 Web 应用程序的地址复制到剪贴板或记事本文件。 例如,地址可能类似于以下内容:https://localhost: <端口号>/RIAServicesExampleTestPage.aspx。

将 SilverlightUIAutomationHelper.dll 添加到 Silverlight 4 项目中

若要测试您的 Silverlight 应用程序,您必须将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 作为引用添加到 Silverlight 4 应用程序中,以便能标识 Silverlight 控件。 此帮助程序程序集将检测您的 Silverlight 应用程序,以使与控件有关的信息对您在编码的 UI 测试中使用的 Silverlight 插件 API 可用,或可用于操作录制。无法重新发布此程序集。 因此,当您需要生成应用程序时,您必须有条件地添加此引用。 通过使用此方法,您在将软件部署到客户时将不会重新发布程序集。

添加 SilverlightUIAutomationHelper.dll

  1. 对于解决方案中要测试的每个 Silverlight 项目,您必须添加 SilverlightUIAutomationHelper.dll。 在解决方案资源管理器中,右击 RIAServicesExample 项目,再选择**“卸载项目”**。

    该项目在解决方案资源管理器中显示为**“RIAServicesExample (不可用)”**。

  2. 再次右击该项目,然后单击**“编辑 RIAServicesExample.csproj”**。

    这将在代码编辑器中打开 RIAServicesExample.csproj 文件。 您将看到 <PropertyGroup> 节点后跟 <ItemGroup> 节点。 您必须进行以下两项修改:

    1. 若要设置生产条件,请将以下条目添加到第一个 <PropertyGroup> 节点:

      <Production Condition="'$(Production)'==''">False</Production>
      
    2. 若要在版本不是生产版本时添加 DLL,请在 <PropertyGroup> 节点之后和 <ItemGroup> 节点之前插入以下 <Choose> 节点:

      <Choose>
         <When Condition=" '$(Production)'=='False' ">
               <ItemGroup>
                 <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper">
                 </Reference>
               </ItemGroup>
             </When>
       </Choose>
      
  3. 若要保存该文件,请单击**“保存”**。

  4. 若要重新加载这些更改,请右击服务器项目,然后单击**“重新加载项目”**。

    警告

    若要测试多个 Silverlight 项目,您必须对每个项目执行上述步骤。

    重要说明重要事项

    若要删除 SilverlightUIAutomationHelper.dll,使其不会与成品代码一起重新发布,请在第一个 <PropertyGroup> 节点中将生产条件值设置为 true。 这样一来,上一过程中添加到项目的 Choose 节点不会再将 DLL 添加为引用。 还可将名为 Production 的环境变量的值设置为 True。 然后,可使用 msbuild 来生成 Silverlight 项目并删除 SilverlightUIAutomationHelper.dll。

为 RIAServicesExample Silverlight 应用程序创建编码的 UI 测试

创建编码的 UI 测试

  1. 在解决方案资源管理器中,右击该解决方案,单击**“添加”,然后选择“新建项目”**。

    随即出现**“添加新项目”**对话框。

  2. 在**“已安装的模板”窗格中,展开“Visual C#”“Visual Basic”,然后选择“测试”**。

  3. 在中间窗格中,选择**“测试项目”**模板。

  4. 单击**“确定”**。

    在解决方案资源管理器中,将名为**“TestProject1”**的新测试项目添加到您的解决方案中。 代码编辑器中将出现 UnitTest1.cs 或 UnitTest1.vb 文件。 由于本演练中不使用 UnitTest1 文件,因此可将其关闭。

  5. 在解决方案资源管理器中,右击**“TestProject1”,单击“添加”,然后选择“编码的 UI 测试”**。

    此时将显示**“为编码的 UI 测试生成代码”**对话框。

  6. 选择**“录制操作、编辑 UI 映射或添加断言”选项,然后单击“确定”**。

    将出现“UIMap – 编码的 UI 测试生成器”。

    有关此对话框中选项的更多信息,请参见如何:创建编码的 UI 测试

  7. 在“UIMap – 编码的 UI 测试生成器”中单击**“开始记录”**。 几秒钟后,编码的 UI 测试生成器将准备就绪。

    开始录制 UI

  8. 启动 Internet Explorer。

  9. 在 Internet Explorer 的地址栏中,输入您在上一过程中复制的 Web 应用程序的地址。 例如:

    https://localhost:<port number>/RIAServicesExampleTestPage.aspx

  10. 单击一个或两个列标题以对数据进行排序。

  11. 关闭 Internet Explorer。

  12. 在“UIMap – 编码的 UI 测试生成器”中,单击**“生成代码”**。

  13. 在“方法名称”中,键入 SimpleSilverlightAppTest,然后单击**“添加并生成”**。 几秒钟后,编码的 UI 测试将出现,并会被添加到解决方案中。

  14. 关闭“UIMap – 编码的 UI 测试生成器”。

    CodedUITest1.cs 文件将出现在代码编辑器中。

    提示

    可基于应用程序中的 Silverlight 控件的类型分配一个唯一的自动化属性。 有关更多信息,请参见 为 Silverlight 控件设置唯一的自动化属性以进行测试.

对 RIAServicesExample Silverlight 应用程序运行编码的 UI 测试

运行编码的 UI 测试

  • 在**“测试”菜单上,选择“Windows”,然后单击“测试视图”。在“测试视图”中,在“测试名称列下选择“CodedUITestMethod1”,然后单击工具栏中的“运行选定内容”**。

    编码的 UI 测试将使用 Silverlight 数据网格控件成功运行。

请参见

参考

Microsoft.VisualStudio.TestTools.UITesting.SilverlightControls

Microsoft.VisualStudio.TestTools.UITest.Extension.Silverlight

概念

使用自动 UI 测试来测试用户界面

其他资源

如何:设置 Silverlight 应用程序以进行测试

为 Silverlight 控件设置唯一的自动化属性以进行测试

使用编码的 UI 测试或操作录制来测试 Silverlight 应用程序

使用编码的 UI 测试编辑器编辑编码的 UI 测试