zoukankan      html  css  js  c++  java
  • 自动化测试框架之Coded UI

    软件:VS2010    |    编程语言:C#    |    框架:Coded UI    |    目的:提高测试效率、提高测试稳定性

    什么是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 } }
  • 相关阅读:
    sql server 2008数据库 降为 sql server 2005数据库 最终方案总结
    android 单元测试
    C# 5.0中引入了async 和 await
    Android之NDK开发
    Java NIO原理 图文分析及代码实现
    【第六篇】Volley之https相关
    【第五篇】Volley代码修改之图片二级缓存以及相关源码阅读(重写ImageLoader.ImageCache)
    【第四篇】Volley修改之GsonRequest
    java复习 --集合类
    android 图片加载优化,避免oom问题产生
  • 原文地址:https://www.cnblogs.com/fengsiyi/p/3052809.html
Copyright © 2011-2022 走看看