51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2015|回复: 2
打印 上一主题 下一主题

[转贴] 使用Visual Studio 2010进行UI自动化测试

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:34
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2016-10-25 13:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. 被测试功能说明。
      非常简单的一个功能:在文本框中输入文字,点击Go按钮,下面则会显示文本框中输入的文字。
      
      接下来我们就为这个小程序创建UI自动化测试:
    2. 创建测试项目。
      打开VS2010,选择 文件 - 新建 -项目,模板列表中选择 测试 - 测试项目,输入测试项目名称 UITestProject。
      
    3. 添加UI自动化测试。
      1. 右键 UITestProject,选择 添加 - 编码的 UI 测试。
      
      2. VS2010将弹出如下窗体:单击 确定 按钮。
      
      3. 进而VS2010自动最小化,右下角弹出 UI 自动化测试生成器:
      
    4. UI自动化测试基本步骤。
      1. 单击红色按钮开始录制。
      
      2. 操作一遍功能。
      
      3. 暂停录制。
      
      4. 查看录制的操作。
      
      5. 生成测试代码。
      
      测试代码:
    1. [TestMethod]
    2.         public void CodedUITestMethod1()
    3.         {

    4.             this.UIMap.TestMyApplication();

    5.         }
    复制代码
    查看 TestMyApplication 方法,转到定义:
    1. /// <summary>
    2.         /// TestMyApplication - 使用“TestMyApplicationParams”将参数传递到此方法中。
    3.         /// </summary>
    4.         public void TestMyApplication()
    5.         {
    6.             #region Variable Declarations
    7.             WpfEdit uITbContentEdit = this.UIMainWindowWindow.UITbContentEdit;
    8.             WpfButton uIGOButton = this.UIMainWindowWindow.UIGOButton;
    9.             WpfButton uI关闭Button = this.UIMainWindowWindow.UIMainWindowTitleBar.UI关闭Button;
    10.             #endregion

    11.             // 启动“%VisualStudioDir%\Projects\MyUITestWpfSimple\MyUITestWpfSimple\bin\Debug\MyUITestWpfSimple.exe”
    12.             ApplicationUnderTest uIMainWindowWindow = ApplicationUnderTest.Launch(this.TestMyApplicationParams.UIMainWindowWindowExePath, this.TestMyApplicationParams.UIMainWindowWindowAlternateExePath);

    13.             // 在 “tbContent” 文本框 中键入“Hello cnblogs”
    14.             uITbContentEdit.Text = this.TestMyApplicationParams.UITbContentEditText;

    15.             // 单击 “Go” 按钮
    16.             Mouse.Click(uIGOButton, new Point(66, 10));

    17.             // 单击 “关闭” 按钮
    18.             Mouse.Click(uI关闭Button, new Point(24, 12));
    19.         }
    复制代码
    TestMyApplication方法也是根据UI测试生成器记录的步骤生成的。
      6. 运行测试,VS将会自动打开窗体,自动在文本框中输入文字Hello cnblogs,自动点击按钮。UI自动化测试的基本操作就是这样了。
    6. 为 UI 自动化测试添加断言。
      1. 按住 UI测试生成器 的十字线,拖到要断言的控件上。
      
      2. 松开鼠标,将弹出添加断言窗口。点击添加断言,输入结果值:Hello  cnblogs 。
      
      3. 单击 确定,输入验证方法名:ValidateValue。
      
      4. 查看生成的代码:
    1. [TestMethod]
    2.         public void CodedUITestMethod1()
    3.         {

    4.             this.UIMap.TestMyApplication();
    5.             this.UIMap.ValidateValue();
    6.         }
    复制代码
    转到ValiateValue方法的定义:
    1. /// <summary>
    2.         /// ValidateValue - 使用“ValidateValueExpectedValues”将参数传递到此方法中。
    3.         /// </summary>
    4.         public void ValidateValue()
    5.         {
    6.             #region Variable Declarations
    7.             WpfText uIHellocnblogsText = this.UIMainWindowWindow.UIHellocnblogsText;
    8.             #endregion

    9.             // 确认 “Hello cnblogs” 标签 的属性“AutomationId”等于“Hello cnblogs”
    10.             Assert.AreEqual(this.ValidateValueExpectedValues.UIHellocnblogsTextAutomationId, uIHellocnblogsText.AutomationId);

    11.             // 确认 “Hello cnblogs” 标签 的属性“AutomationId”等于“Hello cnblogs”
    12.             Assert.AreEqual(this.ValidateValueExpectedValues.UIHellocnblogsTextAutomationId1, uIHellocnblogsText.AutomationId);
    13.         }
    复制代码
    生成断言和生成测试步骤的原理是一样的。
    7. 为 UI 自动化测试添加测试数据。
      1. 打开 测试视图(测试 - 窗口 - 测试视图),选择当前的测试项目,选择属性。在属性对话框中,选择 数据连接字符串:
      
      2. 选择数据源类型,这里我选择 CSV文件。
      
      3. 编码实现使用CSV文件中的数据进行测试。
    1. [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestSources.csv",
    2.             "TestSources#csv", DataAccessMethod.Sequential), DeploymentItem("UITestProject\\TestSources.csv"), TestMethod]
    3.         public void CodedUITestMethod1()
    4.         {

    5.             using (ApplicationUnderTest.Launch(this.UIMap.StartMyApplicationParams.UIMainWindowWindowExePath,
    6.                 this.UIMap.StartMyApplicationParams.UIMainWindowWindowAlternateExePath))
    7.             {
    8.                 this.UIMap.TestMyApplicationParams.UITbContentEditText =
    9.                     TestContext.DataRow["input"].ToString();

    10.                 this.UIMap.TestMyApplication();

    11.                 this.UIMap.ValidateDisplayValueExpectedValues.UIHellocnblogsTextDisplayText=
    12.                   TestContext.DataRow["output"].ToString();
    13.                 this.UIMap.ValidateDisplayValue();
    14.             }
    15.         }
    复制代码
    4. 运行测试,程序将自动打开,自动根据CSV文件中的数据进行输入和验证:
      
    PS:VS2010 的版本必须是 Premium版 或者 Ultimate版;文中如有问题,请帮忙指出;各位大牛如果有更好的方法测试应用程序请赐教!
    作者:backslash112

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏4
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-1-6 23:25
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2017-1-14 13:12:27 | 只看该作者
    thanks for sharing.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-11-24 15:12
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    3#
    发表于 2017-2-27 21:16:15 | 只看该作者
    可以把GUI 层先封装一下,然后再写业务逻辑,这样方便重用
    不然控件位置变了 就要重新定位
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 01:54 , Processed in 0.073251 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表