×

ui自动化测试框架 软件

ui自动化测试框架(做Android手机软件测试需要掌握哪些工具)

admin admin 发表于2022-09-07 10:58:30 浏览154 评论0

抢沙发发表评论

本文目录

做Android手机软件测试需要掌握哪些工具


请注意测试本身不是靠工具的而是靠设计,这是我的理念,所以我一向觉得,很多人认为做测试做的好就是靠掌握一门好的工具,这个观点是不正确的,所以我可以负责任的告诉你,做Android手机需要掌握的不是工具、而是理念、思维、以及框架,总的来说是本质,而工具只是辅助,那么现在我来介绍一些我了解的工具(仅仅是了解,很多没用过)
开源 Android 软件测试工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。
Android Test Kit
Android Test Kit 是一组 Google 开源测试工具,用于 Android 平台,包含 Espresso API 可用于编写简洁可靠的 Android UI 测试。
AndroidJUnit4
AndroidJUnit4 是一个让 JUnit 4 可以直接运行在 Android 设备上的开源命令行工具。
Appium
Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar’s 的 iOS Auto. Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。
Calabash-android
calabash-android 是一个基于 Cucumber 的 Android 的功能自动化测试框架。Calabash 允许你写和执行,是开源的自动化移动应用测试工具,支持 Android 和 iOS 原生应用。Calabash 的库允许原生和混合应用的交互测试,交互包括大量的终端用户活动。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 应用和桌面环境的交互跟触摸屏应用的交互是不同的。Calabash 专为触摸屏设备的原生应用提供 APIs。
Monkey
Monkey 是 Google 开发的 UI/应用测试工具,也是命令行工具,主要针对压力测试。你可以在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,作为你开发应用的压力测试。
MonkeyTalk
MonkeyTalk 是世界上最强大的移动应用测试工具。MonkeyTalk 自动为 iOS 和 Android 应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 “smoke tests“,复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获非常容易,可以记录高级别,可读的测试脚本。同样的命令可以用在 iOS 和 Android 应用上。你可以记录一个平台的一个测试,并且可以在另外一个平台回放。MonkeyTalk 支持移动触摸和基于手势交互为主的移动体验。点击,拖拽,移动,甚至是手指绘制也可以被记录和回放。
NativeDriver
NativeDriver 是 WebDriver API 的实现,是原生应用 UI 驱动,而不是 web 应用。
Robolectric
Robolectric 是一款Android单元测试框架,使用 Android SDK jar,所以你可以使用测试驱动开发 Android 应用。测试只需几秒就可以在工作站的 JVM 运行。Robolectric 处理视图缩放,资源加载和大量 Android 设备原生的 C 代码实现。Robolectric 允许你做大部分真实设备上可以做的事情,可以在工作站中运行,也可以在常规的 JVM 持续集成环境运行,不需要通过模拟器。
RoboSpock
RoboSpock 是一个开源的 Android 测试框架。提供简单的编写 BDD 行为驱动开发规范的方法,使用Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。
Robotium
Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
UIAutomator
uiautomator 测试框架提高用户界面(UI)的测试效率,通过自动创建功能 UI 测试示例,可以在一个或者多个设备上运行你的应用。
Selendroid
Selendroid 是一个 Android 原生应用的 UI 自动化测试框架。测试使用 Selenium 2 客户端 API 编写。Selendroid 可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。

web ui自动化测试框架有哪些


web ui自动化的框架还是非常多的,但是其他都没什么好介绍,就selenium,绝对值得拥有
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,GoogleChrome,Opera等。这里说的就是他功能全,几乎能测市面上所有的浏览器。
这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。selenium支持使用java\python\js\ruby等一大堆的脚本语言来编写自动化。

如何使用UIAutomation进行iOS 自动化测试


1.你的第一个UIAutomation测试脚本UIAutomation的功能测试代码是用Javascript编写的。UIAutomation和Accessibility有着直接的关系,你将用到通过标签和值的访问性来获得UI元素,同时完成相应的交互操作。下面让我们来编写我们的第一段测试代码。使用iOS模拟器1.下载示例应用程序TestAutomation.xcodeproj,并打开它。这个项目是一个很简单的包含2个tab的tabbar应用程序。2.确保选中如下图所示的“TestAutomation》iPhone5.0Simulator”模式(或许你已经切换成5.1了,因此它可能是iPhone5.1模拟器)。3.启动Instruments(Product》Profile),或者通过⌘I。4.选择左边的iOSSimulator,然后再选择Automation模板,然后点击“Profile”。5.Instruments就已经启动好后,然后直接开始录制了。这里先停止录制,(红包按钮或者⌘R)。6.在左边的Scripts窗口,点击“Add》Create”创建新的脚本。7.在脚本编辑器里,输入下面的代码vartarget=UIATarget.localTarget();varapp=target.frontMostApp();varwindow=app.mainWindow();target.logElementTree();clip_image0078.重新运行这段脚本⌘R(不需要保存)。脚本跑起来后,你可以在日志打完后停止它。clip_image009赞一个!我们就这样完成了我们的第一个UIAutomation测试用例。使用iOS设备你除了将你的测试用例运行模拟器上,也可以将它运行在一个真实的设备上。不过,自动化测试用例只能运行在支持多任务的:iPhone3GS,iPad,iOS》4.0等设备上。遗憾的是不管iPhone3G的系统版本是什么,都不支持。下面是如何操作:1.通过USB接口连接上你的iPhone。2.选择“TestAutomation》iOSDevice”模式。3.确保Developperprofile设置成Release模式(而不是Ad-HocDistributionprofile)。默认情况下,profiling是设置成Release模式的(因为没有必要将profile设置成Debug模式)。4.启动测试5.后面的步骤请参考前面模拟器部分。2.处理UIAElement和元素可访问性(Accessibility)UIAElement层次结构Accessibility和UIAutomation有密切的联系:如果一个控件的Accessibility是可以被访问的,你就可以设置和读取它的值,作相关的操作,而当一个控件的Accessibility不可见时,你就没有法通过automation访问它。你可以通过InterfaceBuilder,或者通过在程序里设置isAccessibilityElement属性的方式来设置一个控件的Accessibility或者可被自动化。当你设置containerview(即:一个视图包含其它的UIKit元素)的accessibility时,你必须注意。你设置了整个View的accessibility将会“隐藏”它的子视图的accessibility,例如:在示例项目中,你不能将outlet视图设置成可访问的,否则它所有的子控件将都不可以访问了。在任何时候,logElementTree都是你忠实的朋友:它将当前界面的所有可被访问的元素都打印在日志里。每一个可以被访问的UIKit控件都可以用一个Javascript对象来描述,它就是一个UIAElement。UIAElement有几个属性:name,value,elements,parent。你的主窗口包含很多的控件,它们是以UIKit层次的方式定义的,这些UIKit层次结构对应的是UIAElement的层次树。例如:前面的测试代码中,通过调用logElementTree,我们可以得到如下面所示的树结构:+-UIATarget:name:iPhoneSimulatorrect:{{0,0},{320,480}}|+-UIAApplication:name:TestAutomationrect:{{0,20},{320,460}}||+-UIAWindow:rect:{{0,0},{320,480}}|||+-UIAStaticText:name:FirstViewvalue:FirstViewrect:{{54,52},{212,43}}|||+-UIATextField:name:UserTextvalue:TapSomeTextHere!rect:{{20,179},{280,31}}|||+-UIAStaticText:name:Thetextis:value:Thetextis:rect:{{20,231},{112,21}}|||+-UIAStaticText:value:rect:{{145,231},{155,21}}|||+-UIATabBar:rect:{{0,431},{320,49}}||||+-UIAImage:rect:{{0,431},{320,49}}||||+-UIAButton:name:Firstvalue:1rect:{{2,432},{156,48}}||||+-UIAButton:name:Secondrect:{{162,432},{156,48}}clip_image001你可以通过下面的代码来访问文本框:vartextField=UIATarget.localTarget().frontMostApp().mainWindow().textFields();你可以选择通过从0开始的索引或者这个元素的名称来访问这个元素,例如:你也可以通过下面的代码来访问文本控件。vartextField=UIATarget.localTarget().frontMostApp().mainWindow().textFields()[“UserText“];后一种方式更加清晰明了,应该多使用。你可以通过InterfaceBuilder设置UIAElement的name属性,clip_image002或者通过编写代码的方式:myTextField.accessibilityEnabled=YES;myTextField.accessibilityLabel=@“UserText“;你现在可以看到,通过accessibility属性可以被UIAutomation用来找到不同的控件。这非常的清晰,因为,第一,你只要学习一个测试框架;第二,通过编写自动化测试代码,你同时还可以保证你的程序是可以被访问的。因此,每一个UIAElement对象的子控件可以通过下面的方法进行访问:buttons(),images(),scrollViews(),textFields(),webViews(),segmentedControls(),sliders(),staticTexts(),switches(),tabBar(),tableViews(),textViews(),toolbar(),toolbars()等等……你可以通过如下代码在tabbar上访问第一个tab:vartabBar=UIATarget.localTarget().frontMostApp().tabBar();vartabButton=tabBar.buttons()[“First“];UIAElement结构层次非常的重要,你以后会常常用到它。而且你还要记住,你可以在随时通过调用UIAAplication的logElementTree来获得它的结构。UIATarget.localTarget().frontMostApp().logElementTree();在模拟器上,你还可以激活Accessibility的检测器。启动模拟器,找到“Settings》General》Accessibility》AccessibilityInspector”,然后将它设为“打开”状态。这个彩色的小框框就是Accessibility检测器了。当它来的时候,Accessibility就被关闭了,当它的时候,Accessibility就是打开的。你只要点击上面的箭头按钮就可以激活或者屏蔽Accessibility。现在,打开我们的示例程序,激活检测器。然后,点击文本框,检查UIAElement的name和value属性(其实就是accessibilityLabel和accessibilityValue对应的NSObject类型的值)。这个检测器可以帮助你调试和编写你的测试代码。模拟用户操作让我们更进一步,模拟一些用户的交互操作。你可以简单地调用按钮的tap()来作一个点击操作:vartabBar=UIATarget.localTarget().frontMostApp().tabBar();vartabButton=tabBar.buttons()[“First“];//Tapthetabbar!tabButton.tap();你还可以调用UIAButtons的doubleTap(),twoFingerTap()。如果你不想操作具体的某个元素,你也可以直接根据屏幕上指定的坐标点进行操作,你可以这么用:UIATarget.localTarget().tap({x:100,y:200});UIATarget.localTarget().doubleTap({x:100,y:200});UIATarget.localTarget().twoFingerTap({x:100,y:200});UIATarget.localTarget().pinchOpenFromToForDuration({x:20,y:200},{x:300,y:200},2);UIATarget.localTarget().pinchCloseFromToForDuration({x:20,y:200},{x:300,y:200},2);拖拽与划动:UIATarget.localTarget().dragFromToForDuration({x:160,y:200},{x:160,y:400},1);UIATarget.localTarget().flickFromTo({x:160,y:200},{x:160,y:400});注意,当你指定操作的时间间隔的时候,它是有特定的范围的,即:拖拽操作的时间间隔必须大于或者等于0.5秒,小于60秒。现在,让我们来练习一下:停止Instruments(⌘R)在Scripts窗口里,移除当前的脚本点击“Add》Import”然后选择TestAutomation/TestUI/Test-1.js(将下面的代码保存到这个路径)点击录制按钮(⌘R)然后看看将会发生什么…下面是Test-1.js代码:vartestName=“Test1“;vartarget=UIATarget.localTarget();varapp=target.frontMostApp();varwindow=app.mainWindow();UIALogger.logStart(testName);app.logElementTree();//--selecttheelementsUIALogger.logMessage(“Selectthefirsttab“);vartabBar=app.tabBar();varselectedTabName=tabBar.selectedButton().name();if(selectedTabName!=“First“){tabBar.buttons()[“First“].tap();}//--taponthetextfielsUIALogger.logMessage(“Taponthetextfieldnow“);varrecipeName=“UnusuallyLongNameforaRecipe“;window.textFields().setValue(recipeName);target.delay(2);//--taponthetextfielsUIALogger.logMessage(“Dismissthekeyboard“);app.logElementTree();app.keyboard().buttons()[“return“].tap();vartextValue=window.staticTexts()[“RecipeName“].value();if(textValue===recipeName){UIALogger.logPass(testName);}else{UIALogger.logFail(testName);}这段脚本先启动待测程序,然后,如果第一个tab没有被选的话就切换到第一个tab,并将上面的文本框的值设成“UnusuallyLongNameforaRecipe”,接着虚拟键盘。这里有一些新的方法值得注意的:UIATarget的delay(NumbertimeInterval)方法允许你在两个操作之间做一些等待,UIALogger的logMessage(Stringmessage)方法用来将你想打印的信息输出到日志上去,UIALogger的logPass(Stringmessage)方法指明你的测试脚本已经成功的完成测试了。你还知道了如何访问键盘上的按钮,然后作点击操作:app.keyboard().buttons()[“return“].tap();
-ui自动化测试框架

什么是ui自动化测试


自动化测试分为黑盒测试,和白盒测试,就是把被测程序当作一个盒子,能看到代码的成为白盒测试,不能看到代码的成为黑盒测试,ui测试是不能看到代码,只基于程序功能的测试;ui自动化测试,是通过java/python等语言进行自动化操作程序的测试;我用的是python,unittest框架 + selenium框架(电脑端);能够通过程序模拟人的操作进行反复的测试;手机端用的是appium框架,来操作手机或者平板;纯手写,欢迎采纳!
-软件

一般大公司UI自动化测试使用什么工具呢


1、Selenium:该软件是一个用于Web应用程序测试的工具。其测试直接运行在浏览器中,支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。支持Net、Java、Perl等不同语言的测试脚本。-ui自动化测试框架

2、Soapui:SoapUI是一款开源测试工具,通过soap/

参考资料来源:百度百科-Selenium

参考资料来源:百度百科-Soapui

参考资料来源:百度百科-Robot Framework

参考资料来源:百度百科-QTP

参考资料来源:百度百科-Jmeter


UI自动化测试用例失败,可能是什么因素导致的


我们在做基于UI的自动化测试时经常会有执行失败的时候,那么究竟有哪些因素导致了脚本的执行失败呢,下面就来总结下:
①软件的bug,这种是最常见的,由于软件新出现了bug导致脚本的Fail
②软件的界面发生了变化,但是脚本没有更新
③脚本中的等待时间太短了,导致元素还没出来就被判定为失败了
④网络因素,网络如果太慢的话,界面元素的显示就会滞后
⑤执行的时候突然弹出一个窗口影响了元素的定位
⑥在移动设备上执行的时候不同手机的分别率对元素定位有影响
⑦开源自动化测试框架自身的一些bug
可以了解一下黑马程序员的软件测试课程,里面讲的非常详细。
-软件

如何使用UIAutomation进行iOS自动化测试


  研究iOS的自动化测试也有些日子了,刚开始的时候,一直苦于找不到什么好的资料,只能从Apple的官网查阅相关的API文档,只可惜,Apple对开发者来说实在是不怎么友好,文档写得相当的粗略,对于初学者来说有一定的难度。
  本来是打算自己动手写一篇关于iOS的UI自动化测试的入门级别的介绍性文档的,但想起来后面在具体解决一些问题的时候,收藏一篇很好的Blog,很全面地介绍了如何使用UIAutomation的JavaScript Libraries做iOS程序的自动化测试。如果作者早点看到这篇文章,应该要少走一些弯路,这里没有创意性的把他翻译成中文,希望对你们有一些帮助。
  快速入门
  自动化测试代码可以“在你的睡着的时候”很好地帮你测试你的应用程序。它可以让你能够快速地跟踪你程序中的回归和性能方面的问题,这样你就不用担心你新增的功能会影响到你之前已经完成开发的程序了。
  随着iOS4.0的发布,苹果公司同时发布了一个名为UIAutomation的测试框架,它可以用来在真实设备和iPhone模拟器上执行自动化测试。但官方关于UIAutomation的文档相当的有限,在网络上也没有太多的资源可以查找的。本文将向你展示你如何将UIAutomation整合到你的工作流程当中去。
  作为基础知识的准备,你可以先看一下苹果公司关于UIAutomation的文档,另外还有一篇快速入门的介绍苹果Instruments的文档也值得看看,当然,如果你有一个免费的Apple开发者账号的话,你可以看一下WWDC 2010 - Session 306 – 使用Instruments进行用户界面自动化测试的幻灯片或者视频。
  除此之外,包括在Xcode中的OCUnit测试框架也可以用来为你的应用程序编写单元测试。
  1、第一个UIAutomation测试脚本
  ● 使用iOS 模拟器
  ● 使用iOS设备
  2、处理UIAElement和元素可访问性(Accessibility)
  ● UIAElement层次结构
  ● 模拟用户操作
  3、经验分享(让你的生活变得更简单)
  ● 类库Tune-up介绍
  ● 导入外部脚本
  ● 使用强大的命令行
  ● 使用录制交互功能
  ● 当遇到问题时,加上“UIATarget.delay(1);”
  4、高级交互
  ● 处理非预期和预期的提示框(alerts)
  ● 多任务
  ● 屏幕方向
  5、总结
  ● 有用的链接
  ● 一个视频
  1、你的第一个UIAutomation测试脚本
  UIAutomation的功能测试代码是用Javascript编写的。UIAutomation和Accessibility有着直接的关系,你将用到通过标签和值的访问性来获得UI元素,同时完成相应的交互操作。
  下面让我们来编写我们的第一段测试代码。
  使用iOS模拟器
  1)下载示例应用程序TestAutomation.xcodeproj,并打开它。这个项目是一个很简单的包含2个tab的tabbar应用程序。
  2)确保选中如下图所示的“TestAutomation 》 iPhone 5.0 Simulator”模式(或许你已经切换成5.1了,因此它可能是iPhone5.1模拟器)。
  3)启动Instruments(Product 》 Profile),或者通过⌘I。
  4)选择左边的iOS Simulator,然后再选择Automation模板,然后点击“Profile”。
-ui自动化测试框架

应用程序的ui自动化测试使用什么工具


  曾经有一段时间,人们习惯于在MS Excel里面编写单元测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例。这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话。
  这一套单元测试的执行过程常常成为瓶颈,因为任何代码修改都会带来手工执行大量单元测试,以确保新的修改没有破坏原有功能。

  如今是个快节奏时代,人们希望工作能够无需人工介入、自动化的快速完成。每个人都喜欢执行一个命令就能把工作搞定,而且在执行期间不需要人工介入。需要做的仅仅是检查一下最终的输出结果。
  当这个世界正在迈向自动化时,自动化测试也不甘落后,不论是在功能测试方面还是UI测试方面。每天我们都能听说自动化测试方面涌现出的新软件。
  本文提供了一些信息给那些想用Coded UI自动测试框架来进行应用界面自动化的.Net开发者。

  什么是Coded UI?
  最近我一直在寻找一个自动化的用户接口测试的解决方案。用户接口测试需要用户多次进行手工输入操作,这是一个既枯燥又费时的过程。因此,我想寻找一种更智能的自动化UI测试的方案,这种UI测试在不需要人工干预下,能够被保存,记录并提供支持 ,快速测试代码的改变。
  Coded UI 采用用户接口来驱动应用的进行自动化测试。这些测试包括UI控制的功能性测试。他们使你可以验证整个应用的功能是否正确,其中包括了用户接口。Coded UI尤其适合用于用户接口中存在校验或者其它的登录方式的测试,比如网页。Coded UI也可以用于人工测试用例的自动化。
 
  Coded UI 测试帮助用户测试应用程序的用户接口。这些测试允许用户验证应用程序的功能。Coded UI 多数时间用于帮助验证在UI层本身的有效逻辑。它能够验证值对用户接口的控制的正确性。
  其它方案
  市场有许多自动化用户接口的方案,比如HP的QuickTest Professional, IBM Rational Functional Tester. 其它著名的,易于使用的开源工具解决用户接口自动化问题的有Selenium,也能够记录测试,需要的时候回放。市场上还有来自Microsoft的也能不需要太多努力做同样的事。用Visual Studio Microsoft还有Coded UI的方案用于单元测试。
 
  Coded UI适合在哪儿用?
  大多数安装了Visual Studio的开发者都喜欢在Visual Studio的环境里进行单元测试,而不是使用第三方工具。由微软提供的Coded UI,在Visual Studio环境里可谓上手即用。在开发者的机器上无需另外安装任何东西。一旦你安装了Visual Studio的Premium版或者Ultimate版,你就同时也安装好了Coded UI。
  Coded UI可用性
  为了使用Coded UI,需要安装Visual Studio 2010/2012/2013的Premium版或者Ultimate版。

  Coded UI 测试的组成
  Coded UI 测试的组成容易理解。它可分成下列文件:
  UIMap.uitest
  这个文件是UIMap类的XML表示。UIMap类包括视窗,控件,属性,方法,断言和动作。
  UIMap.cs
  对UIMap的自定义部分都存在这文件里。如果修改直接存在UIMap.designer.vb文件的话,那些修改都会在记录结束后丢失,因为这个文件重新创建了。
  给每个在测应用程序中的每个模块创建一个独立的UIMap文件。
  UIMap.Designer.cs
  这是部分类表达各种类。这各种类是给多样的控件和他们的范围,属性,方法的类。
  提示:不要直接修改 UIMap.Designer.cs。加入你这样做,这个修改会被覆盖掉。
  CodedUITest.cs
  这类表示的实际的CodeUI测试类,方法调用,和断言调用,所有的方法和断言默认都是从UIMap.Designer.cs文件调用的。这类有具有【codedUITest]属性TestClass和包含具有【TestMethod]属性的多种方法。

  Coded UI的特性/好处
  进行用户界面测试的同时进行校验.
  生成VB.Net/C#代码.
  测试用例可以被记录和重放.
  集成了ALM Story
  能够作为每日构建的一部分来运行.
  根据需要进行高级扩展.
  和Visual Studio集成在一起,所以无需单独购买许可.
  Coded UI对Web和Windows应用同样适用.
  著名的Microsoft支持.
  创建Coded UI测试
  Coded UI测试可以用下列方式创建
  使用MTM进行快速自动构建
  从现有的记录(从手动测试中记录下来的操作)中创建Coded UI
  在Coded UI Test Builder创建的底稿的基础上创建一个新的Coded UI测试.
  自己写Coded UI.
  这个白皮书的范围仅限于“在Coded UI Test Builder创建的底稿之上创建一个新的Coded UI测试”。
  小贴士: 尽量使用Coded UI Test Builder。
  Coded UI Test Builder
  每一个Coded UI测试的生成都需要遵从下列步骤.
  记录/停止/暂停
  编辑记录下来的步骤
  添加断言
  生成代码
  创建Coded UI 测试
  创建新的Coded UI 项目
  要开始使用Coded UI,首先我们需要创建一个测试项目,用来保存所有Coded UI测试。创建一个新的Coded UI项目包含下列步骤
  打开Visual Studio 2012
  选择 File 》 New 》 Project
  选择需要的语言模板 (C# or VB.Net). 我们选择了C#.
  选择Coded UI Project
  输入一个名字
  点击 OK 按钮

  添加 Coded UI 测试
  Visual Studio默认配置为创建Coded UI 测试使用 “Generate a new Coded UI Test from scratch using Coded UI Test Builder“
  提示:在测试的应用程序中,当你创建UI控件时尽量使用有意义的名称,从而对于自动生成的控件显得更加有意义和可用。
  一旦 Coded UI 测试工程创建完成,将会自动打开生成Coded UI 测试代码的对话框,请给出以下选项的设置。
  记录操作,编辑UI地图或添加断言
  使用一个已经存在的操作记录
  默认情况下 选择记录操作,编辑UI地图或添加断言,无需做任何操作,然后点击 “ok“

  Coded UI Test Builder
  选择了上述选项后,Coded UI Test Builder就会被打开,同时Visual Studio窗口被最小化。这意味着我们已经为记录操作做好了准备。
  正如之前描述的,Coded UI Test Builder基于下列4个操作来做记录
  Record Steps
  Update or Delete Steps
  Verify Results (Add Assertions)
  Generate Code
  小贴士: 如果用户界面(UI)变化了,就重新记录测试方法或断言方法,或者重新记录一个既有测试方法中受影响的部分。
  记录一个序列的操作.
  记录一个操作主要需要下列几步.
  Start Recording, 通过选择Record按钮即可.
  Pause Recording, 用来处理记录过程中的其它操作,即Generate Code.
  Edit/Delete 操作, 以防错误的操作被记录。
  Generate code为记录下来的操作创建编号。会给每一个记录下来的操作都生成编号。
  Add Assertions 用来校验结果。
  小贴士: 创建断言最好使用Coded UI Test Builder,因为它会在UIMap.Designer.cs文件中自动添加一个断言方法。

  为记录动作做计划
  任何事情的成功都取决于它计划得有多好。较好地计划最大限度保证了任务成功完成。这样总是比较好,在开始记录动作之前,我们计划好所有的所有要计划的步骤。
  这里我们将要使用应用程序Windows计算器来记录步骤。我们要自动地加和减两个数字。在记录加和减两个数字的时候,下面的步骤将会用到。
  。点击“开始记录”控件
  。到开始,点击执行
  。在执行窗口,输入”calc“
  。停止记录,看记录的步骤
  。删除错误的步骤(存在的话)
  。产生代码;提供和动作相匹配的名字。比如,打开计算器。
  提示:当你产生一个方法时候,使用一个有意义的方法的名字,代替默认名字。
  有意义的名字帮助识别方法的木的。
  。重新记录,提供第一个数字,暂停记录产生代码
  。重新记录,提供操作(加或者减),暂停记录,产生代码
  。重新记录,提供第二个数字,暂停记录,产生代码。
  。加断言
  提示: 产生你的测试作为一系列记录的方法
  提示: 可以的时候,限制每个方法小于10个动作。这模块化的方法让UI改变时候容易替换方法。
  我们已经看到了Coded UI可以使开发者的生活变得多么轻松,尤其是遇到每次都需要进行很多输入的复杂页面的时候。这时,测试用例只需要被记录一次,就可以按照需要执行任意多次。使用Coded UI比使用其它工具的好处是,它能自动适配Web页面和Windows窗口应用。Coded UI测试可以用Visual Studio 2010来运行,也可以用任何版本的VS来运行,它们的功能正变得越来越强大。无需多说,Coded UI是一个由技术领导者提供的强大工具,想要体验Coded UI测试的强大,我们应该开始在项目中使用它看看它能带来多少ROI,我确信Coded UI不会让你失望。
转载
-软件

如何使用cucumber搭建ui自动化框架


我之前开始自动化测试的时候也上网查阅过很多资料,但也没有一个比较有权威的说法。有人说是一种解决自动化测试的解决方案,有人说是一套管理系统,有人说是一个软件,有人说是一段代码举个例子,我现在在公司带头研究自动化测试(刚刚起步),主要是从事web测试。然后使用的工具是ruby+watir-selenium+cucumber,这三种工具都是在国外使用的比较多的。ruby作为脚本语言,watir-selenium用来驱动浏览器,cucumber用来编写测试用例。那么,我对自动化测试框架的理解是,根据公司现在的状况,我使用了这三种工具来搭建了一个自动化测试环境并能实现自动化测试,也就是说,我是用了rubu、watir-selenium和cucumber来构建一个自动化测试的框架,即框架就是ruby、watir-selenium和cucumber,并能用他们来实现自动化测试。
-ui自动化测试框架