ios界面自动化工具--Appium

ios界面自动化工具--Appium

Appium是一款开源的移动端自动化测试框架,支持Android和Ios,之前简单介绍过Appium,链接http://www.yeetrack.com/?p=639。最近在做ios的自动化测试,再详细记录一下过程。

安装Appium

既然使用Appium框架,安装肯定是必须的,两种方式源码安装,或者直接安装二进制dmg文件。

  • 源码方式

      git clone https://github.com/appium/appium
    

    下载完成后,执行sh reset.sh即可,它会将appium配置到我们电脑的环境变量中,直接使用Appium &启动即可。但是这种安装方式,我没有找到Appium Inspector这个界面分析工具。界面的自动化测试,如果少了这款工具,就比较纠结了。

  • 二进制直接安装app包

    Appium在 2014-10-20左右更新了1.3.1版本,对Xcode6和ios 8.1更友好了,建议下载此版本。下载地址:https://github.com/appium/appium/releases,下载安装完成后,在mac的应用程序里应该出现Appium的图标了。

安装Xcode

既然做ios的自动化测试,xcode最好还是安装,虽然可以通过命令行build编译、打包ios项目。安装Xcode,直接在Apple Store中搜索下载即可,Xcode 6.1版本。

样例工程

直接run Appium的样例工程是最快的上手方式,Appium提供了各种语言版本的样例工程,包括Android、Ios,语言有java、php、.net、js、perl、python、ruby。我一直用java,这里就已java语言为例。

  1. 下载代码: git clone https://github.com/appium/sample-code.git
  2. 安装maven,配置环境变量
  3. 修改样例工程中的配置

    sample-code/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/UICatalogTest.java

     @Before
     public void setUp() throws Exception {
         // set up appium
         File classpathRoot = new File(System.getProperty("user.dir"));
         File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator");
         File app = new File(appDir, "UICatalog.app");
         DesiredCapabilities capabilities = new DesiredCapabilities();
         capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
         capabilities.setCapability("platformVersion", "7.1");
         capabilities.setCapability("platformName", "iOS");
         capabilities.setCapability("deviceName", "iPhone Simulator");
         capabilities.setCapability("app", app.getAbsolutePath());
         driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
         driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
     }
    

    如果用模拟器运行的话,应该不需要修改(前提是在命令行下build完了开发代码,xcodebuild);真机的话,需要修改成下面的样子:

     // set up appium
     //File classpathRoot = new File(System.getProperty("user.dir"));
     //File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator");
     String appName = "5LDV***BF.com.yeetrack.ios.app";  //注意修改成自己的应用,这块可以在Xcode中查看,实际上就是Xcode中的Bundle identifier这个参数
     DesiredCapabilities capabilities = new DesiredCapabilities();
     capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
     capabilities.setCapability("platformVersion", "7.1.1");  //真机的ios版本
     capabilities.setCapability("platformName", "iOS");
     capabilities.setCapability("deviceName", "iPhone");
     capabilities.setCapability("app", appName);
     driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
     driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
    
  4. 启动Appium服务,在测试项目的根路径执行mvn clean mvn -Dtest=com.saucelabs.appium.UICatalogTest test即可.

Appium Inspector

在Android中,我们可以使用hierarchyviewer这个强大的工具,来分析界面控件,查看控件id、name、类型等。在ios如果要分析界面控件,可以使用Xcode查看,或者通过Xcode的UIAutomator录制的js脚本查看,但是都比较麻烦。Appium为我们提供了Inspector这款工具。简单使用步骤如下:

  1. 点击“苹果”图标,设置相关参数,如截图

    • App Path:使用模拟器设置此选项,指定build出的app程序,路径如: /Users/apple/work/workspace/sample-code/sample-code/apps/UICatalog/build/Release-iphonesimulator/UICatalog.app
    • BundleID:使用真机设置此选项,这个就是Xcode中的Bundle identifier这个参数,在上面说过一次。
    • Force Device 选择要启动的机器类型
    • Platform Version 指定ios版本
    • UDID 使用真机设置此选项,这是iphone的唯一性标识,可以使用itune查看
    • Xcode Path: 设置Xcode的路径,如果mac中安装了多个Xcode可以在这里进行手动指定
  2. 点击“Launch”图标,启动Appium Server
  3. 点击“Launch”左侧的放大镜图标,就可以启动Inspector工具,比较慢,耐心等待。加载完毕后,可以查看界面控件树,还可以录制脚本。点击控件后,可以看到该控件的name、value、label、xpath、type等,当前前提是开发定义了这些东西。

遇到的问题

继续阅读->

时间: 2024-07-30 14:26:26

ios界面自动化工具--Appium的相关文章

[转] Google 开源 iOS 应用测试工具:EarlGrey

Google 开源 iOS 应用测试工具:EarlGrey oschina 发布于: 2016年02月18日 (3评) 分享到:  收藏 +53 3月19日,深圳源创会火热报名中,go>>>»   Google于今日宣布了开源的EarlGrey软件,以便开发者更轻松地构建和运行“面向iOS apps源码”的用户界面测试(是的,你没看错!)当前托管于GitHub上.遵从开源Apache授权的EarlGrey,由Objective-C编写而成.不过本次发布的重要性在于,Google也确实用的

iOS 逆向工程(工具介绍)- 学习整理(转)

一.class-dump 简介:顾名思义,就是用来导出目标对象的class信息的工具,私有方法声明也能导出来. 原理:利用 Objective-C语言的 runtime 特性,将存 在Mach-O 文件中的头文件信息提 出来,并生成对应的 .h 文件. 使用方法:1,下载然后将class-dump 复制到" /usr/bin"目录下.2,执行sudo chmod 777 /usr/bin/class-dump"命令赋予其执行权限.3,class-dump执行: Objecti

多款自动化工具的横向比较 (UFT、RFT和CukeTest)

自动化测试作为非常专业的市场,不光对自动化测试的工程师技术要求很高,而且在工具选择也非常关键.很多公司的软件在以手动测试为主转换到更多应用自动化测试的过程中,一大困惑是如何选择自动化测试产品.工具产品的选择不仅决定着今后测试质量和自动化测试的开发效率.而且影响到技术人员的招聘,运营成本等多种因素. 仅从成本角度考虑,开源软件没有工具软件的购置成本,但是开源工具的集成和测试框架的搭建需要耗费大量人力.另外,疑难问题如果没有厂商支持,会影响项目进度,也会导致大量的支出.如果从总拥有成本角度考虑(TC

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

iOS:界面适配--iPhone不同机型适配 6/6plus

iOS:界面适配--iPhone不同机型适配 6/6plus        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系,比如1:1或1:2等: ppi:代表屏幕物理大小到图片大小的比例值,如果ppi不变,则坐标和像素的比例不会变: iPhone 4以前 iPhone.iPhone3/3G机型未采用retina,坐标是320 x 480,屏幕像素320 x 480 ,他们一一对应,1:1关系.即一个坐标对应1个像素.

WWDC 2014 Session笔记 - iOS界面开发的大一统

本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What's New in Cocoa Touch Building Adaptive Apps with UIKit What's New in Interface Builder View Controller Advancements in iOS 8 A Look Inside Presentation Controllers iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple

IOS界面适配二: Auto Layout的使用(上)

上一篇讲了IOS中基础的距离单位,链接为 IOS界面适配一: Pt与Px的关系 ,使用距离单位可以定义我们程序中View的大小,但是,仅仅使用Pt定义大小是远远不够的. 比如,我们想让一个button距离手机左边界为20pt,右边界为20pt,距上为30pt,高度自身为20pt,如果在iphone5中(为320pt*568pt),我们要在代码中这么定义 以下代码写在ViewController中的viewDidLoad方法中: UIButton * button = [[UIButton all

C#最佳工具集合:IDE、分析、自动化工具等

原文:C#最佳工具集合:IDE.分析.自动化工具等 C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会改变您编写C#代码的方式. C#编程的最佳工具有以下几类: IDE VS扩展 编译器.编辑器和序列化 反编译和代码转换工具 构建自动化和合并工具 版本控制 测试工具和VS扩展 性能分析 APM 部署自动化 容器 使用上面的链接直接跳转到特定工具,或

iOS开发笔记 - 工具篇

??工欲善其事,必先利其器.作为一个合格的iOS开发者,熟练的使用各种开发或辅助开发的工具也算是一项必备技能吧,下面是我整理的一些工具及其应用场景和使用方法. 文档浏览工具 - Dash 网络抓包工具 Charles Wireshark 版本控制工具 Github SourceTree CornerStone SQLite数据库可视化工具 SQLiteBrowser Datum 界面调试工具 - Reveal 调试仪表 - Gauge 剖面仪器 - Instruments Allocations