51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1501|回复: 0
打印 上一主题 下一主题

Coded UI 自动化测试的用法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-20 17:21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
什么是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(毫秒数);


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

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


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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-22 04:19 , Processed in 0.070735 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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