2014-10-28 17:27:32 max229max 阅读数 8678
  • Appium移动自动化测试

    1.本课程为精心录制的一套视频,讲师讲授课程风格严谨。课程所用的案例结合微信、QQ、百度地图等主流App讲解,让学习Appium更容易理解。 2.学习该课程后,可以熟练掌握Appium的使用方法 3.本课程涵盖知识点:Appium的部署、Appium的工作原理、Capability、Appium常见错误&解决方案、通过微信与QQ应用讲解Appium的知识点:元素定位方法、抓取工具、元素等待、字典整合、Appium如何模拟手机滑动、多点操作等;Appium的分层测试、Appium日志综合应用等 4.本课程是基于Python3语言讲解Appium的应用 5.根据课程的要求学习及联系知识点后,及可熟练通过Appium开展日常的移动端自动化工作 6.本课程提供课程所需的软件包,无需自己苦苦寻找链接下载

    317 人正在学习 去看看 李晓鹏

 Appium - iOS 各种问题汇总

作者: Max.Bai

时间: 2014/10



Appium - iOS 各种问题汇总


 1. Appium 滑动:

 swipe 有三种方式:
 第一种:swipe

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement  element = driver.findElementByXPath("xpath");
HashMap<String, Double> swipeObject = new HashMap<String, Double>();
swipeObject.put("startX", startX);
swipeObject.put("startY", startY);
swipeObject.put("endX", endX);
swipebject.put("endY", endY);
swipeObject.put("duration", duration);
swipeObject.put("element", Double.valueOf(((RemoteWebElement) element).getId()));
js.executeScript("mobile: swipe", swipeObject);



X,Y可为coordinator,也可以是percent,大于1 为coordinator, 小于1 为percent,比如0.5 代表50%

duration单位为秒, Android 可以设置0.1-60,iOS设置0.5-60

需要滑动特定的对象时需要指定的element,只是在名目上滑动式就可以不指定element

第二种: flick 区别swipe是没有duration

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement  element = driver.findElementByXPath("xpath");
HashMap<String, Double> flickObject = new HashMap<String, Double>();
flickObject.put("startX", 0.8);
flickObject.put("startY", 0.5);
flickObject.put("endX", 0.2);
flickObject.put("endY", 0.5);
flickObject.put("element", Double.valueOf(((RemoteWebElement) element).getId()));
js.executeScript("mobile: flick", flickObject);

第三种: scroll only for iOS scrollViewscroll方向滑动:

JavascriptExecutor js = (JavascriptExecutor) _driver;
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", sDrection);        
js.executeScript("mobile: scroll", scrollObject);

方向接受参数:Right, Left, Up, Down

重要:方向和我们认为的方向相反,比如要向下滑,就用Up,应为Up的意思是滑动到手机的顶部,左右也是一样,左滑就是Right

scroll对象滑动:

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement  element = driver.findElementByXPath("scrollview中元素的xpath");
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("element", ((RemoteWebElement) element).getId());
js.executeScript("mobile: scroll", scrollObject);


2. 隐藏键盘hideKeyboard()

为了避免输入框输入内容后键盘遮挡控件,需要对键盘隐藏
Android可以设置如下cap来输入中文,同时能达到隐藏键盘的效果,但是这个设置只能针对Android。

capabilities.setCapability("unicodeKeyboard", true);
capabilities.setCapability("resetKeyboard", true);


iOS 就必须掉用方法hideKeyboard()
默认是点非输入框的地方键盘自动隐藏,如果不生效(开发没有做这个效果),就需要使用其他方法,比如:通过点击“Done”来隐藏键盘
hideKeyboard(HideKeyboardStrategy.PRESS_KEY, "Done");


3. Xcode 版本

Appium 1.2.* 对应Xcode5.0
Appium 1.3  对应Xcode6.0
可能出现错误:
Error: Could not find Automation.tracetemplate
Error: Could not find ios simulator binary at /application/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator


mac 版本更换命令,修改成自己版本对应的路径就好了:

sudo xcode-select -switch /Applications/Xcode-4.6.app/Contents/Developer/


4. Sendkeys vs setValue

Sendkeys iOS无法输入
可以试用setvalue代替

((MobileElement)_driver.findElement(by)).setValue(sText);



5. isAppInstalled/removeApp/installApp

isAppInstalled这个方法在Android里面可以使用(模拟器和真机都试过)
但是在iOS里面使用模拟器返回值总是false,没有错误信息,后来查看源代码发现
cb(new Error("You can not call isInstalled for the iOS simulator!"));
同样removeApp/installApp 都是

6. App path 设置

官网说可以用remote URL设置cap 的app
官网说明如下:
app    The absolute local path or remote http URL to an .ipa or .apk file, or a .zip containing one of these. Appium will attempt to install this app binary on the appropriate device first. e.g.: /abs/path/to/my.apk or http://myapp.com/app.ipa
我为了方便集中管理安装程序所以使用了http://sssss/x.zip
坑爹的问题来了,Android根本就不支持,报错找不到提供的app
iOS 还好,可以安装,但是测试中发现好多控件和放在本地完全不是一个效果。。。
所以还是老老实实的使用本地设置吧
ps: 貌似1.3解决了Android http 的问题,还没有验证

7. sudo安装Appium后无法启动

sudo npm install -g appium后果
Appium will not work if used or installed with sudo
网上有高人解决了这个问题
过程如下:
步骤1. 改变node的所有者

cd /usr/local/lib
sudo chown -R bixiaopeng node_modules

步骤2. 卸载appium

npm uninstall appium -g

步骤3. 重新安装appium

npm install -g appium
步骤4. 启动

appium
原链接:http://blog.csdn.net/wirelessqa/article/details/29188665


8. App or IPA ?

刚开始都想基于开始测试,发现怎么都是不行,不管App,和ipa格式的,现在我总结了一下分享给大家。

不管app的还是ipa的都要区分模拟器版本和真机版本

对于模拟器的,app的Appium不用解压,直接安装,ipa的Appium会解压找出app然后安装,问题来了,Appium用的解压工具是unzip,如果你的ipa里面包含中文的文件名,估计要出问题了,这个是unzip的老问题,网上有方案,不在这里说了,最简单的就是使用app的包,不用解压。

对于真机的,目前还没有测试,后续有问题会更新。



2018-09-05 17:53:24 hm372788571 阅读数 2312
  • Appium移动自动化测试

    1.本课程为精心录制的一套视频,讲师讲授课程风格严谨。课程所用的案例结合微信、QQ、百度地图等主流App讲解,让学习Appium更容易理解。 2.学习该课程后,可以熟练掌握Appium的使用方法 3.本课程涵盖知识点:Appium的部署、Appium的工作原理、Capability、Appium常见错误&解决方案、通过微信与QQ应用讲解Appium的知识点:元素定位方法、抓取工具、元素等待、字典整合、Appium如何模拟手机滑动、多点操作等;Appium的分层测试、Appium日志综合应用等 4.本课程是基于Python3语言讲解Appium的应用 5.根据课程的要求学习及联系知识点后,及可熟练通过Appium开展日常的移动端自动化工作 6.本课程提供课程所需的软件包,无需自己苦苦寻找链接下载

    317 人正在学习 去看看 李晓鹏

一、需要安装或配置的清单:
1.java JDK
2.Xcode
3.eclips (根据个人习惯,选择java开发工具)
4.appium desktop
5.homebrew
6.node
7.npm
8.libimobiledevice
9.carthage
10.ios-deploy
11.xcpretty
12.appium-doctor (可有可无)

二、本次安装的环境
1.macOS:10.13.6
2.appium desktop: 1.6.3
3.Xcode: 9.4.1
4.java JDK: 1.8.0_181
5.java-client: 6.1.0

三、安装步骤,在安装前最好是先链接vpn,国内的防火墙,你懂的。
1.安装java Jdk
a.下载jdk 这里提供一个官网地址Java下载地址
2.安装好java后,安装Xcode,
a.xcode直接在AppStore下载安装即可。
如果安装完Xcode后使用appium-doctor命令还是提示未安装Xcode时,运行xcode-select -p命令看打印出来的路径是不是/Applications/Xcode.app/Contents/Developer 如果不是这个路径,那就执行下面的命令sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
在运行下appium-doctor就会显示Xcode已安装了
3.安装eclipse
a.下载地址 eclipse下载
b.安装eclipse
选择这个
4.安装appium-desktop
a.下载地址github下载地址, csdn下载地址
b.安装appium desktop,将appium拖入applications,就完成安装了。
这里写图片描述
5.安装homebrew
a.打开终端,在终端输入
(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
这里写图片描述

6.安装node
a.在终端输入:brew install node
7.安装npm
a.在终端输入:brew install npm
8.安装libimobiledevice
a.在终端输入:brew install libimobiledevice --HEA
9.安装carthage
a.在终端输入:brew install carthage
在这里插入图片描述
10.安装ios-deploy
a.在终端输入:brew install ios-deploy
用npm install -g ios-deploy安装时报错了,后面用brew安装就ok了在这里插入图片描述
11.安装xcpretty
a.在终端输入:gem install xcpretty
b.如果提示You don’t have write permissions,在前面加上sudo,然后会提示输入电脑的登陆秘密。
在这里插入图片描述
12.安装appium-doctor
a.在终端输入:npm install -g appium-doctor
b.安装成功后,可以使用appium-doctor --ios 检查appium的ios环境有没有安装成功。
13.WebDriverAgent配置
a.WebDriverAgent地址:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
b.打开WebDriverAgent.xcodeproj文件
这里写图片描述
c.按以下配置操作
第一步
第二步
第三步
第四步
第五步
第六步
d.将WebDriverAgent安装到手机上
A.在终端跳转到WebDriverAgent的目录下,WebDriverAgent目录见上面的a步骤有
B.在终端输入
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination ‘id=测试机的udid’ test

这里写图片描述
C.去描述文件信任就可以了。
至此环境已经安装完成了。
四、在eclipse中创建一个maven项目
a.在pom中配置java-client

<dependency>
	<groupId>io.appium</groupId>
	<artifactId>java-client</artifactId>
	<version>6.1.0</version>
</dependency>

b.appium初始化
public class AppTest 

{
private static AppiumDriver driver;

public static void main(String[] args) throws MalformedURLException {
	
	DesiredCapabilities	capabilities = new DesiredCapabilities();
	capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iphone 6s Plus");
	capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iostest");
	capabilities.setCapability("udid", "测试机id");
	//capabilities.setCapability("app", "/Users/hem/ShareSDKDemo.ipa");
	capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3.1");
	capabilities.setCapability("bundleId", "com.mob.product.ShareSDK");
	capabilities.setCapability("sessionOverride", false);
	capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);
	driver = new IOSDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	driver.manage().timeouts().implicitlyWait(180,TimeUnit.SECONDS);	
	driver.findElementById("微信好友").click();
	//System.out.println(driver.findElement(By.xpath("//XCUIElementTypeStaticText[@name=\"微信好友\"] ")).getText()+"------");
	try {
		Thread.sleep(10000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	//XCUIElementTypeStaticText[@name="微信好友"]    	shareMenuIcon
	driver.quit();
}

}

来补一下踩的坑。
之前按网上说的要去github下载一个最新的WebDriverAgent,替换掉appium自带的WebDriverAgent。
当我下载好以后,配置好了替换掉appium自带的WebDriverAgent,结果运行不了。报错。下面为报错log
eclipse log
Exception in thread “main” org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Unhandled endpoint: /session/F885DA2F-2CFF-43CE-A609-5F6F8EA22505/wda/screen – http://localhost:8100/ with parameters {
wildcards = (
“session/F885DA2F-2CFF-43CE-A609-5F6F8EA22505/wda/screen”
);
}
Build info: version: ‘3.12.0’, revision: ‘7c6e0b3’, time: ‘2018-05-08T14:04:26.12Z’
System info: host: ‘youuzdeMac-mini.local’, ip: ‘192.168.110.5’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.13.6’, java.version: ‘1.8.0_181’
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities {app: /Users/hem/ShareSDKDemo.ipa, automationName: XCuiTest, browserName: , databaseEnabled: false, deviceName: iostest, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: false, platform: MAC, platformName: iOS, platformVersion: 10.3.1, sessionOverride: true, takesScreenshot: true, udid: 71b53307f6b547a37d6e2041443…, webStorageEnabled: false}
Session ID: 0c34de1d-e5a2-4e07-8895-300a2652500f
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:231)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:46)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
at io.appium.java_client.HasSessionDetails.getSessionDetails(HasSessionDetails.java:39)
at io.appium.java_client.HasSessionDetails.getSessionDetail(HasSessionDetails.java:56)
at io.appium.java_client.HasSessionDetails.getPlatformName(HasSessionDetails.java:65)
at io.appium.java_client.internal.JsonToMobileElementConverter.(JsonToMobileElementConverter.java:49)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:89)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:94)
at io.appium.java_client.ios.IOSDriver.(IOSDriver.java:95)
at gameAPI.appium.AppTest.main(AppTest.java:34)

找了半天资料没找到解决办法。还去github问了一下,给github提的问题
按他回复的处理后还是不行。

最后实在解决不了啦,心累。。。。。
最后在testhome里面找到了一个哥们遇到了和我一样的问题。
呀!那个链接找不到了。
解决方法就是,使用appium自带的WebDriverAgent。
问题就解决了。。。。
由于对mac系统不是很熟,Xcode也不熟。所以打这个ios的环境有点费劲。
Android相对来说简单的多。后面在补一个mac下搭建appium的android环境。

2018-08-13 17:40:11 fanaw 阅读数 486
  • Appium移动自动化测试

    1.本课程为精心录制的一套视频,讲师讲授课程风格严谨。课程所用的案例结合微信、QQ、百度地图等主流App讲解,让学习Appium更容易理解。 2.学习该课程后,可以熟练掌握Appium的使用方法 3.本课程涵盖知识点:Appium的部署、Appium的工作原理、Capability、Appium常见错误&解决方案、通过微信与QQ应用讲解Appium的知识点:元素定位方法、抓取工具、元素等待、字典整合、Appium如何模拟手机滑动、多点操作等;Appium的分层测试、Appium日志综合应用等 4.本课程是基于Python3语言讲解Appium的应用 5.根据课程的要求学习及联系知识点后,及可熟练通过Appium开展日常的移动端自动化工作 6.本课程提供课程所需的软件包,无需自己苦苦寻找链接下载

    317 人正在学习 去看看 李晓鹏

目录

一:appium ios 搭建 

二:iOS 查看元素方式

三:IOS 常用终端命令



一:appium ios 搭建 

 参考地址:https://github.com/appium/appium-xcuitest-driver

温馨提示:

以下安装不要在root用户下安装。若出现权限问题,进入root用户将文件权限更改下。然后退出root用户继续安装即可

1、有一个MAC机器,或者虚拟机,能够联网,要求Xcode8+ MAC系统10.11+(我用的是Xcode8.2 , MAC系统10.12)有一个Apple ID账号

2、安装brew  

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3、安装libimobiledevice

brew install libimobiledevice --HEAD

4、安装carthage

brew install carthage

5、安装node(目的是安装npm)按照官方的地址https://nodejs.org/en/download/。 下载.pkg文件安装

6、安装cnpm(由于某种原因,直接用npm下载安装会有好多网络问题,安装淘宝的cnpm要比npm好用) https://npm.taobao.org/

npm install -g cnpm --registry=https://registry.npm.taobao.org

7、安装ios-deploy

cnpm install -g ios-deploy

8、安装xcpretty 如果安装出错,切换个目录再试试

gem install xcpretty

9、安装appium1.8.0(到发帖为止,最新版本是1.8.0,要其他版本的跟上版本号就行了)这一步骤若出现安装jDK弹出框忽略就好

cnpm install -g appium@1.8.0

 

二:iOS 查看元素方式

第一种:使用appium 自带的框架,appium  inspector 

 appium inspector 底层使用的XCUITest 来识别页面元素

1、需要把WDA 即WebDriverAgentRunner 安装到虚拟机或真机中,借助WebDriverAgentRunner的驱动来识别元素

2、需要进入WebDriverAgentRunner目录:一般是/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

cd  /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent (如果WebDriverAgent 所在路径和此不同,请自行查找)

3、看下有没有这个目录 Resources/WebDriverAgent.bundle,没有的话就需要创建

mkdir -p Resources/WebDriverAgent.bundle

4、下载相关依赖 

sh ./Scripts/bootstrap.sh -d

5、用xcode运行WebDriverAgent修改包名,即重签名,然后运行到手机端

 参考详细链接:https://www.cnblogs.com/baconLiu/p/6861431.html

                            https://blog.csdn.net/leorx01/article/details/79169423

第二种方式:使用macaca 的XCTestWD 来识别元素

与上基本类似

1、同样需要运行xctestwd至真机或模拟器,先进入目录

2、xcode 重新签名,

3、运行到真机或模拟器

官方使用文档介绍的很详细:https://macacajs.github.io/zh/inspector

 

三:IOS 常用终端命令

lsof -i :5678 查看端口占用的进程

kill -s 9 40036 结束的该进程

ios 的终端命令一般使用第三方的开源库工具,下面介绍两种:libimobiledevice、ios-deploy

libimobiledevice

libimobiledevice 是一个跨平台的软件库,支持 iPhone®, iPod Touch®, iPad® and Apple TV® 等设备的通讯协议。不依赖任何已有的私有库,不需要越狱。应用软件可以通过这个开发包轻松访问设备的文件系统、获取设备信息,备份和恢复设备,管理 SpringBoard 图标,管理已安装应用,获取通讯录、日程、备注和书签等信息,使用 libgpod 同步音乐和视频。

安装方式

brew install --HEAD libimobiledevice # 安装最新的更新,支持 iOS 10 brew install ideviceinstaller # 仅在 iOS9工作

常用命令

1. 查看当前所连接的设备

idevice_id -l # 显示当前所连接的设备[udid],包括 usb、WiFi 连接 instruments -s devices # 列出设备包括模拟器、真机及 mac 电脑本身

2. 安装应用

xxx.ipa为应用在本地的路径

ideviceinstaller -u [udid] -i [xxx.ipa] # 给指定连接的设备安装应用

3. 卸载应用

bundleId为应用的包名

ideviceinstaller -u [udid] -U [bundleId] # 给指定连接的设备卸载应用

4. 查看设备已安装的应用

ideviceinstaller -u [udid] -l # 指定设备,查看安装的第三方应用 ideviceinstaller -u [udid] -l -o list_user # 指定设备,查看安装的第三方应用 ideviceinstaller -u [udid] -l -o list_system # 指定设备,查看安装的系统应用 ideviceinstaller -u [udid] -l -o list_all # 指定设备,查看安装的系统应用和第三方应用

5. 获取设备信息

ideviceinfo -u [udid] # 指定设备,获取设备信息 ideviceinfo -u [udid] -k DeviceName # 指定设备,获取设备名称:iPhone6s idevicename -u [udid] # 指定设备,获取设备名称:iPhone6s ideviceinfo -u [udid] -k ProductVersion # 指定设备,获取设备版本:10.3.1 ideviceinfo -u [udid] -k ProductType # 指定设备,获取设备类型:iPhone8,1 ideviceinfo -u [udid] -k ProductName # 指定设备,获取设备系统名称:iPhone OS

ios-deploy

ios-deploy 同样是一个安装和调试应用的命令行工具。0需要一个有效的开发者证书,已安装 Xcode 7以上的版本。

安装方式

  1. 安装 node (已安装可略过)

brew install node

  1. 安装ios-deploy

npm install -g ios-deploy

  1. 开发者证书安装,请找 iOS 开发吧。

常用命令

1. 查看当前所连接的设备

ios-deploy -c # 查看连接的设备包括:usb、wifi 连接 ios-deploy -c --no-wifi # 查看连接的设备(usb),忽略 WiFi 连接的

2. 安装应用

xxx.app为 Xcode 编译后的应用安装包路径

ios-deploy --id [udid] --bundle [xxx.app] # 给指定应用安装应用

3. 卸载应用

ios-deploy --id [udid] --uninstall_only --bundle_id [bundleId] # 给指定连接的设备卸载应用

4. 查看设备已安装的应用

  • ios-deploy --id [udid] --list_bundle_id # 指定设备安装的所有应用,包括系统应用和第三方应用 ios-deploy --id [udid] --exists --bundle_id # 指定设备检查指定应用是否已经安装
2019-08-10 10:05:55 zouhui1003it 阅读数 112
  • Appium移动自动化测试

    1.本课程为精心录制的一套视频,讲师讲授课程风格严谨。课程所用的案例结合微信、QQ、百度地图等主流App讲解,让学习Appium更容易理解。 2.学习该课程后,可以熟练掌握Appium的使用方法 3.本课程涵盖知识点:Appium的部署、Appium的工作原理、Capability、Appium常见错误&解决方案、通过微信与QQ应用讲解Appium的知识点:元素定位方法、抓取工具、元素等待、字典整合、Appium如何模拟手机滑动、多点操作等;Appium的分层测试、Appium日志综合应用等 4.本课程是基于Python3语言讲解Appium的应用 5.根据课程的要求学习及联系知识点后,及可熟练通过Appium开展日常的移动端自动化工作 6.本课程提供课程所需的软件包,无需自己苦苦寻找链接下载

    317 人正在学习 去看看 李晓鹏

 

appium ios真机自动化环境搭建&运行(送源码)

原创: f i n  测试开发社区  6天前

Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路

首先是熟悉Mac的使用习惯:命令行是Linux风格,界面则类似于Windows风格。

(1)安装JDK,并配置环境变量,方法如下:

sudo vi /etc/profile 在最后行加入如下内容:

 

JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/"

 CLASS_PATH="$JAVA_HOME/lib"

 PATH=".:$PATH:$JAVA_HOME/bin"

保存退出后,执行生效,输入命令Source ~/.bash_profile

输入命令java –version, 环境安装后成功显示如下所示: 

(2)安装Xcode、Xcode commandline tools和iOS模拟器。

在App Store中下载 xcode.dmg并安装 。注意,要0与 Mac的 OS X版本对应。由于App源代码是在Xcode开发环境中开发出来的,因此我们需要在Xcode里调试源码成功运行,并启动所要测试的App,源码的导入和调试可以找iOS开发负责人帮忙搞定,模拟器安装如图3.1所示。

 

图3.1

(3)安装Homebrew:

curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local--strip  1

brew –v 显示如下所示:

 

(4)安装indeviceinstaller:

brew install  indeviceinstaller

ideviceinstaller –h 显示如下所示:

 

(5)安装Appium服务端Node.js:

brew install node

node –v 显示如下所示:

 

(6)安装Appium客户端。

将双击安装包appium.dmg,或将它拖动到Applications文件夹即完成安装。设置Appium环境变量,将appium.js和appium-doctor.js文件所在路径配置到PATH环境变量设置参考,如图3.2所示。

 

图3.2

打开Appium客户端,如图3.3所示。

 

图3.3 

(7)用npm安装wd:

 npm install wd

(8)安装SourceTree、Git 或SVN,然后取开发的App源代码:

 clonessh://zouhui@XXX.XXXXX.com:30020/mnt/repo/app

 git 用户名密码 :zouhui/3ihU88uy***    版本管理取源码,输入用户名密码

 ssh://zouh@dbs.e.com:30020/mnt/repo/ev**_  App  版本管理取源码路径

(9)申请开发者调试证书。

因为开发者证书苹果是要收费的,所以需要给iOS团队开发的负责人在后端平台工具申请自动化测试需要开发的源码和调试权限,大家可向公司的iOS开发负责人提出申请,提供手机UDID:3c22f4c14660eda7d3051636ae659b6b998af8db;

然后iOS开发负责人会提供:iOS的App源代码、调试证书、开通手机UDID调试权限。

建议让iOS开发负责人直接安装好调试证书,因为证书安装比较麻烦,有时很容易出错,所以请开发人员安装可以很快解决。

也可以先在模拟器上运行,但是一般真实测试过程中都是在真机上运行。

(10)安装Eclipse

(11)安装Ant,并设置环境变量:

 sudo

 chmod +w /etc/bashrc

 export ANT_HOME=/usr/local/apache-ant-1.9.3

 export PATH=${PATH}:${ANT_HOME}/bin

(12)Appium客户端界面的配置

真机测试时需要设置以下4个必填项:

  1)BundleID:待测试App的package名称, 如com.test.buy。

  2)Force Device:iPhone手机设备, 如iPhone 6。

  3)Platform Version:iOS版本号, 如9.3。

  4)UDID:手机设备唯一ID,如3c22f4c14660eda7d3051636ae659b6b998af7dc。

如图3.4所示。

▲图3.4

Appium中Xcode默认Path设置如图3.5所示。

▲图3-.5

Appium中的环境配置检查Doctor,打勾表示正常,如图3.6所示。

▲图3.6

Appium中的Inspector工具,可以帮助我们快速定位元素,通常也是通过name和XPath等方式。

Appium中,Launch用来启动停止操作,启动成功时如图3.8所示。

▲图3.8

单击图标,弹出Inspector,进行控件元素的获取,查找元素的XPath、name等,如图3.9所示。

 

▲图3.9

 

3.3 iOS自动化测试运行

(1)   iPhone手机开启运行自动化 ,单击设置—>开发者—>EnableUI Automation —>yes。

将手机连接到电脑上,并且使Xcode能识别到该手机。 

(2)   单击Launch按钮,启动 Appium,无错误日志。

(3)   在Eclipse中运行已经写好的测试代码(详细请看第4章),可看到在Appium客户端中有自动化数据和日志详细信息输出,手机上可以看到看到App自动化测试用例已开始在运行。

(4)   查看测试结果。

3.4 iOS的App自动化测试demo演示视频

    登录账号:7980068@qq.com

    登录密码:*******

http://www.iqiyi.com/w_19rsoh2gip.html#vfrm=2-3-0-1

http://v.youku.com/v_show/id_XMTY2MzU4OTk5Ng==.html  

 

App 自动化测试框架 demo 源码链接:https://pan.baidu.com/s/1bEwMh4 密码:g7pk 

阅读原文

appium ios 真机

阅读数 279

appium ios 隐藏键盘

阅读数 555

没有更多推荐了,返回首页