Coded UI
Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等UI的自动化测试,是一个非常强大的测试工具,Coded UI支持自动录制和手动编写。
Coded UI能干什么
- 打开应用程序
- 模拟用户操作
- 获取UI元素
- UITestControl:所有UI类库的基类
- Web测试类库:HtmlControls(HtmlButton,HtmlDiv等)
- Winform测试类库:WinControls(WinMenu,WinWindow等)
- WPF测试类库:WpfControls(WpfCheckBox,WpfPane等)
Coded UI主要类库
- UITestControl:所有UI类库的基类
- Web测试类库:HtmlControls(HtmlButton,HtmlDiv等)
- Winform测试类库:WinControls(WinMenu,WinWindow等)
- 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(毫秒数);
Coded UI的更多相关文章
- Coded UI Test中的数据驱动测试
有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文章:http://www.cnblogs.com/jaxu/p/3706652.html 本文主要介绍如何 ...
- 如何使用Coded UI Test对Webpage进行自动化测试
在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个东东了.它主要用来帮助自动化测试工程师和开发人员确保程序在UI方面没有 ...
- Coded UI Test对Webpage进行自动化测试
如何使用Coded UI Test对Webpage进行自动化测试 在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个 ...
- C#中通过Coded UI Test Web Page初体验(图文并茂,去繁就简!亲测通过哦~)
今天首次按照网上的步骤进行Coded UI测试,终于测试通过了,我这次进行的自动化测试是:打开浏览器,输入www.baidu.com,然后输入lty,然后点击页面中第一条数据的左侧位置(为了能获取到T ...
- SharePoint自动化系列——通过Coded UI录制脚本自动化创建SharePoint Designer Reusable Workflow
Coded UI非常好,我开始还在想,怎么样能让一个通过SharePoint Designer创建的Workflow publish三百五十次?想不到一个好的方法,也不知道SharePoint Des ...
- 什么是Coded UI
什么是Coded UI Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等U ...
- Enable Coded UI Testing of Your Controls
http://msdn.microsoft.com/en-us/library/hh552522.aspx AccessibleObject Class http://msdn.microsoft.c ...
- 使用WatiN进行UI自动化测试
Watin是一个UI自动化测试工具,支持ie/firefox,官方网站:http://watin.org/. 主要有以下特点: 支持主要的html元素,见:http://watin.org/docum ...
- 自动化测试UI Test, Performance Test, Load Test 总结整理
MSDN: 测试应用程序,Test apps early and often ,Improve Code Quality 推荐书: <Visual Studio 2015高级编程> < ...
随机推荐
- 记一次Apache的代码导致生产服务耗时增加
引言 二狗:二胖快醒醒,赶紧看看刚才报警邮件,你上次写的保存用户接口耗时(<二胖的参数校验坎坷之路>)大大上升,赶紧排查下原因. 二胖:好的,马上看,内心戏可十足(心里却在抱怨,大中午的搅 ...
- spring mvc 集成quartz
首先quartz配置文件 # Default Properties file for use by StdSchedulerFactory # to create a Quartz Scheduler ...
- JavaDailyReports10_12
运算级自增自减运算符大于取值运算符*,大于取地址运算符! 1 #include<stdio.h> 2 #include<string.h> 3 #define OK 1 4 # ...
- web页面过一段时间再次访问时显示数据库连接错误
这个问题是我之前遇到的,过了很久才想着去解决它,因为这也没多大影响,无非就是再访问一次的问题,后来有一次观察网站的运行情况时,发现这个问题还挺严重,如果一直用,就不会出现问题,如果中间歇一会,再用就会 ...
- 文档驱动开发模式在 AIMS 中的应用与实践
摘要:程序员常会说:我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有一个很老的梗: 我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有这种想法的程序员应该算是一个老鸟了,对于大多 ...
- Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别
目录 Java并发包源码学习系列:AQS共享模式获取与释放资源 独占式获取资源 void acquire(int arg) boolean acquireQueued(Node, int) 独占式释放 ...
- Laya 踩坑日记 ---A* 导航寻路
要做寻路,然后看了看laya 官方的例子,感觉看的一脸懵逼,早了半天的api 也没找到在哪有寻路的,最后一看代码,原来是用的github上的A星方案 https://github.com/bgrin ...
- 【Maven】Maven 高级应用
Maven 高级应用 Maven 基础 Maven 是一个项目管理工具,它有如下好处: 节省磁盘空间 可以一键构建 可以跨平台使用 依赖传递和管理,提高开发效率 一键构建:Maven 自身集成了 To ...
- 牺牲速度来节省内存,Redis是觉得自己太快了吗
前言 正常情况下我们选择使用 Redis 就是为了提升查询速度,然而让人意外的是,Redis 当中却有一种比较有意思的数据结构,这种数据结构通过牺牲部分读写速度来达到节省内存的目的,这就是 zipli ...
- Head First 设计模式 —— 12. 状态 (State) 模式
思考题 public class GumballMachine { final static int SOLD_OUT = 0; final static int NO_QUARTER = 1; fi ...