zoukankan      html  css  js  c++  java
  • 基于.Net的自动化测试框架White简介

    White的官方主页:http://teststack.github.com/White/

    现在已经改成TestStack.White了,看来马上要商业化了.

    UIA & UISpy

    White是基于微软的UIA(UI automation)这套东西写出来的,而微软的UIA这套东西,是ms accessibility的一个附属产品,包含在.net framework 3.0里面。在.net framework 3.0里面,有一个不得不提的与UIA相关的工具UISpy,它是一个比Spy界面更友好,用来得到控件信息的一个工具,但是奇怪的是,微软在.net framework 3.5里面没有自动包含这个工具,可以自己去重新下载安装:

    UISpy下载地址:http://www.microsoft.com/downloads/en/details.aspx?familyid=4377F86D-C913-4B5C-B87E-EF72E5B4E065&displaylang=en

    安装之前,注意备好好如下两个注册表键值:

    HKLM/SOFTWARE/Microsft/Microsoft SDKs/Windows/CurrentInstallFolder

    HKLM/SOFTWARE/Microsft/Microsoft SDKs/Windows/CurrentVersion

    (如果你目前安装的是.net 3.5,UISpy++的安装包会把上述两个键值改成v6.0,所以要记得改回来v6.0A)

    关于UIA的一个介绍: http://msdn.microsoft.com/en-us/magazine/cc163288.aspx 

    White的简单使用

    White对于标准的.net控件,是完全支持的;而对于其他控件,可以用White中定义的CustomUIItem进行扩展。 尽管UISpy++是包含在.net 3.0中的,但是它并不能完全识别标准控件,所以最好是用LogStructure()方法来得到控件内部的信息:http://white.codeplex.com/wikipage?title=Third%20Party%20Controls&referringTitle=Home

    下载好White后,新建一个Test Project,引用White.Core.dll,常用的名字空间大概有:

    White.Core.UIItems: 包含几乎除Window类之外的其他常用控件类

    White.Core.UIItems.WindowsItems: 包含Window等类

    White.Core.InputDevices: 包含Keyboard、Mouse、AttachedKeyboard、AttachedMouse等类

    White.Core.UIItems.Finders:包含定义搜索控件条件的类SearchCondition、SearchCritera等

    White.Core.WindowsAPI: 包含特殊的按键的枚举类KeyboardInput.SpecialKeys等

    using White.Core.InputDevices;  
    using White.Core.UIItems.WindowItems;  
    using White.Core.WindowsAPI;  
    using White.Core.UIItems;  
    using White.Core.UIItems.Finders;  

    启动一个程序:

    White.Core.Application app = White.Core.Application.Launch(appPath);  
    //or attach to the launched application  
    White.Core.Application app = White.Core.Application.Attach(appPid);  

    得到一个标题为"Getting Started"的窗口:

    Window mainWin = app.GetWindow("Getting Started");

    类似的,得到该窗口下面的name属性为“File name:"的textbox 和name属性为"OK"的button:;

    TextBox fileNameEdit = mainWin.Get<TextBox>("File name:");  
    Button okBtn = mainWin.Get<Button>("OK");  

    或者利用SearchCriteria枚举类:

    TextBox fileNameEdit=(TextBox)mainWin.Get(SearchCriteria.ByText("File name:"));  
    Button okBtn=(Button)mainWin.Get(SearchCriteria.ByText("OK"));  

    键盘的输入:

    White中如果要在某个控件上进行键盘或者鼠标操作,需要先attached到该控件;如果要输入组合键,需要先Hold住特殊键,然后属于一般字母键,在释放特殊键

    //attach to mainWin firstly  
    AttachedKeyboard keyboard = mainWin.Keyboard;  
    //Press key 'a'  
    keyboard.Enter("a");  
    //input combination keys like: Alt + S  
    //hold 'Alt' key firstly, then enter 's', release 'Alt'
    //e.g. input 'Alt + S' on mainWin  
    keyboard.HoldKey(KeyboardInput.SpecialKeys.ALT);  
    keyboard.Enter("S");               
    keyboard.LeaveKey(KeyboardInput.SpecialKeys.ALT);

    熟悉了以上基本API,就可以写一些简单的自动化测试代码了,更多更深入的可以参考White的主页。

  • 相关阅读:
    父子组件例子
    指令
    使用git将代码推到coding
    vue生命周期
    vue 父子组件
    vuex
    使用vue与element组件
    vue02
    使用vue
    telnet 使用
  • 原文地址:https://www.cnblogs.com/tuyile006/p/2818314.html
Copyright © 2011-2022 走看看