当前位置:新注册送38元体验金 > 新注册送38元体验金操作系统 > IOS 4中实现UI自动测试教程

IOS 4中实现UI自动测试教程

文章作者:新注册送38元体验金操作系统 上传时间:2019-08-22

应用中的所有UI组件通过有次序的对象层级结构传达给脚本,该层次结构通过UIAElements类定义,包括UIATarget、UIALogger等子类。

什么是测试脚本?

确保这个文件中仅有两个分别名为“AccessibilityEnabled”和“ApplicationAccessibilityEnabled”的键值,并且都经过效验。

Automation工具从脚本工作用JavaScript语言编写),它在应用上模仿/击发被请求的事件。测试脚本必须是可靠的可执行JavaScript文件,而且该文件可获取主机的工具。

API提供一个#import指令,你可以用它编写更小的、可重用的、分离的测试脚本。

Trace窗口会打开,在“Choose Target”下拉窗口的帮助下选择应用的调试版本。

1)解压附件“LoginWindow_src.zip”,在调试模式下编译它,并在模拟器Simulator上进行测试。

 // Get the handle of applications main window  var window = UIATarget.localTarget().frontMostApp().mainWindow();      // Get the handle of view  var view = window.elements()[0];      var textfields = window.textFields();  var passwordfields = window.secureTextFields();  var buttons = window.buttons();  var textviews = window.textViews();  var statictexts = window.staticTexts();  var target = UIATarget.localTarget();      // Check number of Text field(s)  if(textfields.length!=1)  {     UIALogger.logFail("FAIL: Inavlid number of Text field(s)");  }  else  {     UIALogger.logPass("PASS: Correct number of Text field(s)");  }  // Check number of Secure field(s)  if(passwordfields.length!=1)  {     UIALogger.logFail("FAIL: Inavlid number of Secure field(s)");  }  else  {     UIALogger.logPass("PASS: Correct number of Secure field(s)");  }      // Check number of static field(s)  if(statictexts.length!=2)  {     UIALogger.logFail("FAIL: Inavlid number of static field(s)");  }  else  {     UIALogger.logPass("PASS: Correct number of static field(s)");  }   // Check number of buttons(s)  if(buttons.length!=1)  {     UIALogger.logFail("FAIL: Inavlid number of button(s)");  }  else  {     UIALogger.logPass("PASS: Correct number of button(s)");  }   //TESTCASE_001 : Test Log on Screen  //Check existence of desired TextField On UIScreen  if(textfields["username"]==null || textfields["username"].toString() == "[object UIAElementNil]")  {     UIALogger.logFail("FAIL:Desired textfield not found.");  }  else  {     UIALogger.logPass("PASS: Desired UITextField is available");  }      //TESTCASE_1.2 :Check existence desired of PasswordField On UIScreen  if(passwordfields[0]==null || passwordfields[0].toString() == "[object UIAElementNil]")  {     UIALogger.logFail("FAIL:Desired UISecureField not found.");  }  else  {     UIALogger.logPass("PASS: Desired UISecureField is available");  }      //TESTCASE_1.3 :Check For Existence of Buttons On UIScreen  if(buttons["logon"]==null || buttons["logon"].toString() == "[object UIAElementNil]")  {     UIALogger.logFail("FAIL:Desired UIButton not found.");  }  else  {     UIALogger.logPass("PASS: Desired UIButton is available");  }   //TESTCASE_001 : Missing User Name  ///////////////////////////////////////   textfields["username"].setValue("");  passwordfields[0].setValue("password");  buttons["logon"].tap();   //target.delay(2);   var errorVal=textviews["error"].value();  if(errorVal!="Invalid User Name or Password")  {     UIALogger.logFail("Did Not Get Missing UserName Error : " errorVal);  }  else  {     UIALogger.logPass("Missing User Name");  }   //TESTCASE_002 : Missing Password  ////////////////////////////////////////////////   textfields["username"].setValue("username");  passwordfields[0].setValue("");  buttons["logon"].tap();  target.delay(2);      var errorVal=textviews["error"].value();  if(errorVal!="Invalid User Name or Password")  {     UIALogger.logFail("Did Not Get Missing Password Error : " errorVal);  }  else  {     UIALogger.logPass(" Missing Password");  }   //TESTCASE_003 : Successful Log On  textfields["username"].setValue("username");  passwordfields[0].setValue("password");  buttons["logon"].tap();  target.delay(2);  

请参照苹果开发者网站的UI Automation Reference Collection获取更多信息。

正如我上面提到的,测试脚本基本上是有顺序的命令集合。换言之,它将文本测试的例子转换成可以被“Automation”工具自动执行的JavaScript

完成脚本之后按下列步骤执行。

IOS 4中实现UI自动测试教程是本文要介绍的内容,这篇文章的对象是 iOS 4 的初学者,我希望一个典型的iPhone 开发者能够通过这篇文章掌握自动设置UI测试的方法。

写测试脚本之前,在“Interface Builder”中标记所有的UI控制,在视图中将可存取性标签设置成一个唯一值必须)。

2)“用户名/密码”是可靠证明;在相应的“User ID”和“Password”字段中填写值。

打开Instruments你可以在Spotlight中找到它),在样本选择窗口中选择“Automation”

测试脚本是有顺序的命令集合,每一个命令获取一个应用中的用户接口组件,然后在上面执行一个用户行为,或者使用与之相关的信息。

你遇到“Unexpected error…”了?
“Unexpected error in -[UIATarget_0x5a20d20 frontMostApp], /SourceCache/UIAutomation_Sim/UIAutomation-37/Framework/UIATargetElements.m line 437″

我使用的应用例子有一个名为“登陆”的屏幕,包含两个文本域名:分别是“用户名”和“密码”,以及一个“登陆”按钮。

在调试模式中编译你的应用

之后会自动运行“iPhone Simulator”,并开始执行测试脚本可能花费4-5秒时间)。

复制com.apple.Accessibility.plist 到~/Library/Application Support/iPhone Simulator/4.0.1/Library/Preferences

使用“Script”下拉窗口选择测试脚本文件,然后点击“Run and Record”按钮。

小结:IOS 4中实现UI自动测试教程的内容介绍完了,希望本文对你有所帮助!

第二步

测试脚本:

可重用的测试脚本

如果你遇到了这个错误,复制一个 com.apple.Accessibility.plist 到4.0.1就可以解决这个问题。

例如:如果你准备在文件 TestUtilities.js中定义常用函数,你可以在脚本中加入命令行 #import”<path-to-library-folder>/TestUtilities.js”,从而使你的测试脚本能够使用这些函数。

第一步

描述

UI 自动测试iOS 4中重要的附加功能,它由名为“Automation”的新的工具对象支持,非常适合Producitivity风格应用的UI测试。

第三步

4 中实现 UI自动测试 教程是本文要介绍的内容,这篇文章的对象是 iOS 4 的初学者,我希望一个典型的iPhone 开发者能够通过这篇文章掌握...

测试样本代码的硬件要求

带有 Snow Leopard 10.6或者更高版本)和iOS SDK 4.0 的Mac MiniIntel处理器版本)

下面是测试脚本的例子

本文由新注册送38元体验金发布于新注册送38元体验金操作系统,转载请注明出处:IOS 4中实现UI自动测试教程

关键词: