什么是Coded UI

Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等UI的自动化测试,是一个非常强大的测试工具,Coded UI支持自动录制和手动编写。

Coded UI能干什么

  1. 打开应用程序
  2. 模拟用户操作
  3. 获取UI元素
  4. UITestControl:所有UI类库的基类
  5. Web测试类库:HtmlControls(HtmlButton,HtmlDiv等)
  6. Winform测试类库:WinControls(WinMenu,WinWindow等)
  7. WPF测试类库:WpfControls(WpfCheckBox,WpfPane等)

Coded UI主要类库

  1. UITestControl:所有UI类库的基类
  2. Web测试类库:HtmlControls(HtmlButton,HtmlDiv等)
  3. Winform测试类库:WinControls(WinMenu,WinWindow等)
  4. WPF测试类库:WpfControls(WpfCheckBox,WpfPane等)

Coded UI结果验证类

Assert类:  Microsoft.VisualStudio.QualityTools.UnitTesting

常用方法:IsTrue(),IsFalse(),IsNull(),AreEqual()

手动编写Coded UI Test

原理:手动编写与自动录制原理相同,但是更为灵活。自动录制生成的代码过于繁乱,不易修改维护,手动编写的话易于管理,可以按照实际情况运用一些常见的编程方法,对代码做一些定制,可读性更强,提取公共部分写成通用函数使得代码易于维护。

思路:

明确你想要测试的程序,根据程序控件的一些属性捕获到这个控件

根据测试需求对控件做一些操作

根据需求提取控件信息,控件状态、文本信息、控件定义等

将提取信息与期望信息匹配

新建Coded UI Test 工程

  • 同上新建一个Test工程,添加Coded UI Test
  • 在CodedUITest1.cs文件中编写测试方法。每个测试方法的方法体上面都要有[TestMethod],为了方便VS2010自带的方法执行工具发现该方法。
  • 手动获取页面控件要使用IE Developer Tools

Coded UI一些操作方法

调用HtmlControls类库(后面有示例程序)

  • 打开浏览器:调用BrowserWindow类来实例化一个BrowserWindow对象

BrowserWindow browser = BrowserWindow.Launch(new Uri("http://www.baidu.com"))

  • 获取Div控件:调用HtmlDiv类实例化一个HtmlDiv对象

HtmlDiv header = new HtmlDiv(browser);

header.SearchProperties[HtmlDiv.PropertyNames.Class] = "s_tab";

  • 获取文本框:调用HtmlEdit类来实例化一个HtmlEdit对象

HtmlEdit txtKeyWord = new HtmlEdit(browser);

txtKeyWord.SearchProperties[HtmlEdit.PropertyNames.Class] = "s_ipt";

  • 获取按钮:调用HtmlInputButton类实例化一个HtmlInputButton对象

HtmlInputButton btnSubmit = new HtmlInputButton(browser);

btnSubmit.SearchProperties[HtmlInputButton.PropertyNames.Class] = "s_btn";

依次类推,在代码中会有智能提示,或者查询MSDN网站来查找相应方法

  • 鼠标点击:Mouse.Click(HtmlControl);

Mouse.Click(btnSubmit);

  • 验证结果:调用Assert类的各种方法

Assert.IsTrue(imgLogo.Exists, "Logo doesn't exist!");

  • 等待浏览器加载完成:BrowserWindow .WaitForControlReady();
  • 让程序等待:System.Threading.Thread.Sleep(毫秒数);

示例程序:验证百度搜索成功

public class CodedUITest1
{
[TestMethod]
public void VarifyFeatures()
{
#region 打开浏览器获取控件 //调用BrowserWindow打开浏览器,默认打开IE
BrowserWindow browser = BrowserWindow.Launch(new Uri("http://www.baidu.com")); //打开其他浏览器方法
//Process p = Process.Start(@"C:\Users\XXX\AppData\Roaming\360se6\Application\360se.exe", "http://www.baidu.com");
//BrowserWindow browser = BrowserWindow.FromProcess(p); //根据属性找到搜索文本框
HtmlEdit txtKeyWord = new HtmlEdit(browser);
txtKeyWord.SearchProperties[HtmlEdit.PropertyNames.Class] = "s_ipt"; //根据属性找到“百度一下”按钮
HtmlInputButton btnSubmit = new HtmlInputButton(browser);
btnSubmit.SearchProperties[HtmlInputButton.PropertyNames.Class] = "s_btn"; //根据属性找到header div
HtmlDiv header = new HtmlDiv(browser);
header.SearchProperties[HtmlDiv.PropertyNames.Class] = "s_tab"; #endregion #region 各种验证 //等待浏览器加载完成
browser.WaitForControlReady(); //输入测试关键字
txtKeyWord.Text = "软件测试"; //点击“百度一下按钮”
Mouse.Click(btnSubmit); //验证页面跳转后搜索框里面的关键字正确
Assert.IsTrue(txtKeyWord.ValueAttribute.Contains("软件测试")); //关闭浏览器
browser.Close();
#endregion
}
}

什么是Coded UI的更多相关文章

  1. Coded UI Test中的数据驱动测试

    有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文章:http://www.cnblogs.com/jaxu/p/3706652.html 本文主要介绍如何 ...

  2. 如何使用Coded UI Test对Webpage进行自动化测试

    在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个东东了.它主要用来帮助自动化测试工程师和开发人员确保程序在UI方面没有 ...

  3. Coded UI Test对Webpage进行自动化测试

    如何使用Coded UI Test对Webpage进行自动化测试   在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个 ...

  4. C#中通过Coded UI Test Web Page初体验(图文并茂,去繁就简!亲测通过哦~)

    今天首次按照网上的步骤进行Coded UI测试,终于测试通过了,我这次进行的自动化测试是:打开浏览器,输入www.baidu.com,然后输入lty,然后点击页面中第一条数据的左侧位置(为了能获取到T ...

  5. SharePoint自动化系列——通过Coded UI录制脚本自动化创建SharePoint Designer Reusable Workflow

    Coded UI非常好,我开始还在想,怎么样能让一个通过SharePoint Designer创建的Workflow publish三百五十次?想不到一个好的方法,也不知道SharePoint Des ...

  6. Coded UI

    Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等UI的自动化测试,是一个非 ...

  7. Enable Coded UI Testing of Your Controls

    http://msdn.microsoft.com/en-us/library/hh552522.aspx AccessibleObject Class http://msdn.microsoft.c ...

  8. 使用WatiN进行UI自动化测试

    Watin是一个UI自动化测试工具,支持ie/firefox,官方网站:http://watin.org/. 主要有以下特点: 支持主要的html元素,见:http://watin.org/docum ...

  9. 自动化测试UI Test, Performance Test, Load Test 总结整理

    MSDN: 测试应用程序,Test apps early and often ,Improve Code Quality 推荐书: <Visual Studio 2015高级编程> < ...

随机推荐

  1. Google用不了解决方法(添加gmail用不了的方法)

     1. 获取google最新的ip列表 能够使用工具1: http://ip.chinaz.com/? IP=www.google.com 也能够使用工具2: http://tool.17mon.cn ...

  2. Tui-x 基础使用

    本章以Tui-x3.x仓库里的HelloTuiCpp项目来做具体解说.[ 由于HelloTuiCpp里面演示的全部控件,本文篇幅有限,不能一一说明,所以仅仅能列举两个控件,后面的文章会有针对性地解说其 ...

  3. c++ 哈希表(hash表)

    一.定义 Hash表,也称散列表.一般应用于有大量"动态"的插入(删除)和查找操作的一类问题.(如果是"静态"的,通常可以先对数据排序,查找时就可以用" ...

  4. iOS: FFmpeg的使用二

    1.下载并编译FFMPEG. https://github.com/kewlbear/FFmpeg-iOS-build-script 下载后有一个build-ffmpeg.sh文件.终端执行即可自动下 ...

  5. session劫持技术

    目录: 0×00 应用程序认证设计背景0×01 常规攻击思路及缺陷0×02 利用应用程序设计缺陷进行Session劫持的攻击原理0×03 Session劫持的大致思路及意义0×04 如何防御这种攻击 ...

  6. ECharts学习总结(五):echarts的Option概览

    注:下面内容摘自echarts官网,原文地址:http://echarts.baidu.com/doc/doc.html#%E9%80%89%E9%A1%B9 option 图表选项,包含图表实例任何 ...

  7. mac远程桌面Microsoft Remote Desktop for Mac的安装与使用

    mac远程桌面Microsoft Remote Desktop for Mac的安装与使用 学习了:https://blog.csdn.net/ytangdigl/article/details/78 ...

  8. [Grunt + AngularJS] Using ng-annotate for min-safe AngularJS

    When you minify your code with a tool like Uglify, the resulting minified file will rename variables ...

  9. 谋哥:《App自推广》开篇之回到远古人类

    [谋哥每天一干货.第六十八篇] 这两天帮谋天团的杨整体验他的App--"闪聊"的内測新版,改版后这款App命名为"美丫",一款致力于打造国内首款专注于女性社交的 ...

  10. Android_三种菜单介绍

    Android的菜单分为三种类型:选项菜单(Option Menu).上下文菜单(Context Menu).子菜单(Sub Menu) 一.选项菜单 当用户单击设备上的菜单按钮(Menu),触发事件 ...