51Testing软件测试论坛
标题:
自动化测试框架之Coded UI
[打印本页]
作者:
Mario洁
时间:
2018-4-20 15:07
标题:
自动化测试框架之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(毫秒数);
示例程序:验证百度搜索成功
复制代码
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
}
}
复制代码
作者:
梦想家
时间:
2018-5-9 13:46
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2