博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Coded UI
阅读量:5034 次
发布时间:2019-06-12

本文共 3370 字,大约阅读时间需要 11 分钟。

什么是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        }    }
View Code

 

转载于:https://www.cnblogs.com/binyao/p/4902715.html

你可能感兴趣的文章
HDU 4638 Group (莫队算法||线段树离散查询)
查看>>
精神到处文章老,学问深时意气平(努力方向)——Leo2014年终总结
查看>>
Android-ListView 下拉刷新
查看>>
批量判断流量大于300的小脚本
查看>>
SDN
查看>>
cf 11B Jumping Jack(贪心,数学证明一下,,)
查看>>
POJ 2418 Hardwood Species(STL在map应用)
查看>>
Python开发之路
查看>>
Codeforces 449.C Jzzhu and Apples
查看>>
取石子游戏HDU1846
查看>>
前端常见英文缩写含义
查看>>
POJ_3967_Ideal Path
查看>>
将Ubuntu下网卡名称enss改为eth0
查看>>
VS 里附加库目录的设置
查看>>
移动端jq及zepto事件绑定
查看>>
记五一清北(济南)
查看>>
Centos非管理员安装Python和pip
查看>>
切片器化繁为简,盘它 !
查看>>
Hdu 1181 变形课
查看>>
关于Unity中的3D拾取
查看>>