appiumios(appiumios真机测试)
本篇文章给大家谈谈appiumios,以及appiumios真机测试对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、appium长时间运行内存溢出解决方式
- 2、如何安装appium ios inspector
- 3、如何在 iOS 真机运行 Appium
- 4、使用appium框架进行ios自动化测试有什么优势和劣势
- 5、如何用 appium 实现 iOS 以及 Android 的 Monkey 测试
- 6、Appium 在 iOS 上怎么实现多设备操作 · TesterHome
appium长时间运行内存溢出解决方式
下班的时候开始执行,第二天来的时候发现没跑完,appium各种异常,散拿后来看了appium的log发现是内存溢出了,报错如下:
--- Last few GCs ---
[68480:0x102845000] 22938475 ms: Mark-sweep 4085.6 (4104.9) - 4085.6 (4104.9) MB, 54.7 / 0.0 ms (average mu = 0.957, current mu = 0.000) last resort GC in old space requested
[68480:0x102845000] 22938532 ms: Mark-sweep 4085.6 (4104.9) - 4085.6 (4104.4) MB, 56.5 / 0.0 ms (average mu = 0.922, current mu = 0.000) last resort GC in old space requested
--- JS stacktrace ---
==== JS stack trace =========================================
0: ExitFrame [pc: 0x57e8fedbe3d]
Security context: 0x078c1981e6e9 JSObject虚手
1: test [0x78c19809561](this=0x078c4a932069 ,0x078c1f607219 )
2: truncate [0x78ccb9c31a9] [/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/lodash/lodash.js:~15070] [pc=0x57e90fd3b85](this=0x078c14...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: 0x10003d035 node::Abort() [/usr/local/bin/node]
2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
5: 0x100590274 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
6: 0x100561b25 v8::internal::Factory::NewRawOneByteString(int, v8::internal::PretenureFlag) [/usr/local/bin/node]
7: 0x100693c38 v8::internal::String::SlowFlatten(v8::internal::Handle, v8::internal::PretenureFlag) [/usr/local/冲誉搭bin/node]
8: 0x100779c08 v8::internal::RegExpImpl::IrregexpExec(v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle) [/usr/local/bin/node]
9: 0x10081c670 v8::internal::Runtime_RegExpExec(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
10: 0x57e8fedbe3d
Abort trap: 6
于是上网找了以下的几种方式:
1.使用终端运行appium ,并且把appium内存扩展到4096MB
我的是:node --max_old_space_size=4096 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js -p 4723
2.logcat.js文件注释push
附上当时eclipse的报错:
1、
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'ruby-Mac.local', ip: 'fe80:0:0:0:69:1eb2:920:7aaf%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '12.0.2'
Driver info: io.appium.java_client.ios.IOSDriver
2、
org.openqa.selenium.NoSuchSessionException: Session does not exist
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'ruby-Mac.local', ip: 'fe80:0:0:0:69:1eb2:920:7aaf%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '12.0.2'
Driver info: io.appium.java_client.ios.IOSDriver
[img]如何安装appium ios inspector
Appium 支持Android也支持iOS,但是两者还有很大的区别,我使用Appium一个多月,刚开始是Android,后面才用iOS,所以做iOS自动化的时候比Android艰难多了,后来才发现这两个的模式有一定的差别。(当然可能是我Mac的基础太差)就以我在理解浅显的描述下两者的区别。 Appium Android 工作模式(如下经验仅仅是我在windows上的经验,mac上只用了ios,如有说错,请大家指正): 过程大概如下: 1. Android设备已经开启(包括真机和模拟器,真机已经连接上电脑,当然驱动少不了。。。) 2. Appium 打开(命令行打开的同时Appium server也同时开启了) 3. Appium启动时连接Android设备,这里不做任何设置(什么app,浏览器,API版本。。。,IP和端口还是需要设置的)就可以成功开启Appium Appium Server启动直接连接设备。 自动化用例执行时连接上Appium server,才告诉Appium我要测什么app。。。之类的caps Appium iOS 工作模式: iOS 和 Android不同,模拟器和真机有区别,我分开说 iOS模拟器过程如下: 1. 打开Appium (命令行直接执行Appium就算是启动了,GUI的可能还需要点击launch) 2. 启动Appium server 除了设置IP和端口,别的也不需要设置(命令行打开的时候就带了IP和端口的参数) Appium Server开启时不连接任何模拟器,执行用例是才按照caps 开启对应的模拟器和安装app iOS真机: 1. 真机连接上电脑 2. Appium打开 (命令行直接执行Appium就算是启动了,真机需要-u 参旅烂数设置真机UUID,GUI的可能还需要点击launch) 3. 启动Appium server 除了设置IP和端口(命令行打开的时候就带了IP和端口的参数),需要设置真机的UUID(当然还有其他关联caps也需要设置),Appium启动时需要连接真机 那么问题来了(别想歪了,不是blue shit。。。) 开启Appium server的时候什么设置都不要,那GUI里面的那么多设置都是干什么用的?(什么app,浏览器,API版本。。。) 答案就是Inspector用的,Inspector 就和悔瞎你执行用例一样的,需要告诉server你的caps都是什么。 Android SDK有工具可以用来识别UI的,UIAutomationView,在SDK的目录下, 所以Appium Android inspector的可以不要。 iOS SDK不知道是否有类似的工具,所以我拆前漏还是用Appium的Inspector来抓对象。 以上都是个人经验,如有错误,望大家一起探讨。
如何在 iOS 真机运行 Appium
首猛丛手先你启动 appium 的时候 指定设备的 UUID 指定 APP 的 Bundle ID 比如 appium -U 45f082689dbaebb0ffa3620b3ae22ad9faff9a30 --app io.appium 然后再去枝嫌运行脚本。
比如源郑纳码的案例下面的 examples/python/simple_real_device.py
使用appium框架进行ios自动化测试有什么优势和劣势
优势就是可以随意选择编程语言,appium兼容性还不错。
劣势就是难用
如何用 appium 实现 iOS 以及 Android 的 Monkey 测试
Android测试工具包括:AndroidTestKit,AndroidJUnit4,Appium,calabash-android,Monkey,MonkeyTalk,NativeDriver,Robolectric,RoboSpock,Robotium,UIAutomator,SelendroidAndroidTestKit组Google源测试工具用于Android包含EspressoAPI用于编写简洁靠AndroidUI测试山肆AndroidJUnit4让JUnit4直接运行银唯派Android设备源命令行工具Appium源、跨自化测试工具用于测试原轻量移应用支持iOS,AndroidFirefoxOSAppium驱苹UIAutomation库AndroidUiAutomator框架使用锋贺SeleniumWebDriverJSON协议AppinmiOS支持基于DanCuellar'siOSAuto.Appium同绑定Selendroid用于Android测试
Appium 在 iOS 上怎么实现多设备操作 · TesterHome
首先 Appium 支持 iOS 真机
条件必须满足:
苹发者账号发者证书
苹设备确保设备已经配置发机器配置
签名 .ipa 文件或者源代码
A Mac with Xcode and the Xcode Command Line Developer Tools xcodexcode command line 苹系统别问我windows 测试 iOS 应用
Provisioning Profile
再强调真机需要效发发证书发 Provisioning Profile
应用需要签名Appium 参试使用 Fruitstrap 安装应用
使用 xcode 安装真机便
拓展: Provisioning Profile
运行
要指键含定真机运行两种式:
稿租笑 appium 启候指定 udid app bundle appium -U --app
或者脚本指定两 desired capability
desired_capabilities={
'app':'com.xxx.iphone',
'udid':'70643e56c1b0f3c3132c44c87e433a48b5531ee6',
'platformName': 'iOS',
'deviceName': 'iPhone'
})
注意: 设备未安装 app 指定 ipa 址安装
则指定 bundle ID
所于第种情况代码写:
self.driver = webdriver.Remote(
command_executor='',
desired_capabilities={
'deviceName':'',
'platformName': 'iOS',
})
于第二种情况代码写:
app = "io.appium.TestApp"
self.driver = webdriver.Remote(
command_executor='',
desired_capabilities={
'deviceName':'',
'platformName': 'iOS',
'app': app,
'udid': 'cc6bcd6a94aeb8490924dd05c5b318bfbfafb3bb'
})
调试思路
确保 UDID 确真机 UDID(20+ 字符串)
确保模拟器已经能运行误
直接使用 Instruments 看看否能型激真机运行些情况连 xcode instruments 都能真机调试更别谈 appium
确保运行 appium 用例前 instruments 没启看看没 instruments 进程
目前 1.2.2 坑
目前 appium 1.2.2 运行 iOS 真机测试能遇错误:
info: [debug] Starting iOS device log capture via deviceconsole
error: iOS log capture failed: spawn ENOENT
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: spawn ENOENT
info: [debug] Error: spawn ENOENT
at errnoException (child_process.js:1000:11)
at Process.ChildProcess._handle.onexit (child_process.js:791:34)
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: spawn ENOENT)","code":"ENOENT","errno":"ENOENT","syscall":"spawn","origValue":"spawn ENOENT"},"sessionId":null}
info: -- POST /wd/hub/session 500 1780.745 ms - 197
/usr/local/lib/node_modules/appium/build/deviceconsole/ 面缺失 deviceconsole已经 bug 追踪
解决:
该目录底 cd /usr/local/lib/node_modules/appium/build/deviceconsole/
打deviceconsole project open deviceconsole.xcodeproj
重新 build build deviceconsole复制 /usr/local/lib/node_modules/appium/build/deviceconsole/
重新运行 Appium
关于appiumios和appiumios真机测试的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。