Appium进行自动化测试有两个好处:

1. Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。

2. Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

使用appium进行ios自动化需知:

IOS自动化测试需要Mac os操作系统

Mac OS X 10.7或者更高版本,推荐10.8.4版本

Android自动化测试可以在Mac、Linux上进行。

需要安装node和npm(node版本高于0.8)

Mac Xcode(本人使用)

Apple开发者工具(iphone模拟器sdk,及命令行工具)

安装appium

这里转发一个博客:http://www.cnblogs.com/oscarxie/p/3894559.html

到这里环境已经准备的差不多了,我开始自己的第一个ios自动化脚本

appium设置:

使用真机连接,要选中UUID,将真机的UUID填入,选择正确真机ios版本,这样在启动时,就会自动去寻找链接的设备。

发现在虚拟机上启动inspector,application 的设置必须设置App Path,使用BundleID将启动不了,会报以下错误:

Could not start a new session

Be sure the Appium server is running with an application opened by using the "App Path" parameter in Appium.app (along with package and activity for Android) or by connecting with selenium client and supplying this in the desired capabilities object.

如果有inspector启动不了,请查找之前写的一篇文章:http://www.cnblogs.com/llining/p/5040290.html

启动之后显示界面:

下面介绍下使用appium 录制脚本

打开inspector后,会发现上面有个record按钮,点击它,下面会弹出如下所示窗口:

点选某个文本框控件,点击text后,输入要输入的文本,点击Send Keys,代码中就会生成一行新的代码,如图

在Touch 中,会有一个常用动作,如点击、活动、长按等,Text中,是对文本的操作,Locator是用来检查定位元素的路径的正确,Misc中是对窗口中弹出的提示框的处理。

录制完毕后,点击sava,保存代码。

导出的代码如:

import io.appium.java_client.AppiumDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;

public class {scriptName} {

public static void main(String[] args) {

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability("appium-version", "1.0");

capabilities.setCapability("platformName", "iOS"); //表示要启动的设备为ios

capabilities.setCapability("platformVersion", "9.1"); //启动设备的系统版本

capabilities.setCapability("deviceName", "iPhone 6 Plus"); //启动设备名称,虚拟机的只写设备名称就可以了,真机需要填写UUID

capabilities.setCapability("app", "/Users/123/Downloads/Reserve.ipa"); //要测试的包

wd = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); //appiumserver 连接地址

wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

wd.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATextField[1]/UIATextField[1]")).sendKeys("156XXXX2606");  //像文本框输入文本

wd.findElement(By.xpath(".//UIAScrollView[1]/UIASecureTextField[1]/UIASecureTextField[1]")).sendKeys("111111");  //像文本框输入文本

wd.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIAButton[1]")).click();   //点击登录按钮

wd.close();

}

}

以上脚本,就实现一个简单的登录功能。

 
 
 

初识ios自动化(一)的更多相关文章

  1. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  2. iOS自动化环境搭建——macaca

    macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一.环境搭建 1.安装eclipse; -----Java开 ...

  3. 一招让 IOS 自动化化快的飞起

    前言 最近在做IOS自动化测试,IOS的Appium环境都配置OK,Demo脚本运行没有问题,多开执行没有问题,IOS安卓统一平台调度集成没有问题,可以进行自动化测试.课时真正执行用例时发现个严重问题 ...

  4. 基于facebook-wda的iOS自动化操作实践记录

    [本文出自天外归云的博客园] 原理 对于iOS自动化操作,主要靠WebDriverAgent来完成.在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WD ...

  5. Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发

    Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下 ...

  6. IOS自动化打包介绍

    IOS自动化打包介绍  标签: app打包 , Ios打包 , iphone打包 , iphone自动化打渠道包    分类:无线客户端技术, 贴吧技术 摘要 随着苹果手持设备用户的不断增加,ios应 ...

  7. iOS自动化打包上传的踩坑记

    http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDe ...

  8. Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置

    最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...

  9. iOS自动化编译

    最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试. 具体思路是通过从配置文件读取需要编译的项目配置列 ...

随机推荐

  1. groupspecWidhoutAuthorizations与groupspecWidthAuthorizations的区别

    GroupSpecifier是一个用来定义group所有参数的类.首先,将它命名为“myGroup/g1”.然后设置 serverChannel与Stratus进行沟通.最后发布.这样,我们就完成了P ...

  2. Your stream was neither an OLE2 stream, nor an OOXML stream.问题的解决

    先说说问题的来源 ,使用NPOI读取Except,先通过流来读取,如果符合要求,就将流保存为文件. 众所周知,流只能读一次,所以在流读取之前需要将流拷贝一份,保存文件的时候使用. protected ...

  3. objdump 分析

    objdump -H 显示如下: 一般常用的是 objdump -x 显示文件头信息 objdump -d 反汇编代码段代码 objdump -D 反汇编所有代码 用法:objdump <选项& ...

  4. codeforces B.Fixed Points

    link:http://codeforces.com/contest/347/problem/B 很简单,最多只能交换一次,也就是说,最多会增加两个.可能会增加一个.也可能一个也不增加(此时都是fix ...

  5. css技术

    CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现HTML或 XML 等文件式样的计算机语言. CSS 目前最新版本为CSS2,能够真正做到网页表现与内容 ...

  6. USACO 2015 December Contest, Gold Problem 2. Fruit Feast

    Problem 2. Fruit Feast 很简单的智商题(因为碰巧脑出来了所以简单一,一 原题: Bessie has broken into Farmer John's house again! ...

  7. Android开发中的输入合法性检验

    Why ? 合法性检查对于程序的健壮性具有重要作用.在Android开发中,良好的合法性检查设计机制可以使程序更加清晰,产生bug更少,交互更加友好. What ? 合法性检查的目的在于确定边界.对于 ...

  8. Windows下利用虚拟机运行FSL 安装和配置

    FSL是牛津大学FMRIB开发的用于分析功能磁共振影像的科研软件包. 运行要求:windows7或vista操作系统,10G硬盘空间,4G内存. 从FSL官网上下载Centos6的虚拟盘(FSLVm6 ...

  9. $.map和$.extend来复制数组(OA差旅)

    $.map:对数组的每个元素调用定义的回调函数并返回包含结果的数组. 对数组用指定的方法. //将原数组中每个元素加 4 转换为一个新数组. //jQuery 代码: $.map( [0,1,2], ...

  10. Linux java环境安装

    一.jdk yum 安装方法 1.wegt http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...