tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具。最近终于开源了出来。
所以这篇文章就来介绍一下这款工具。
项目地址 https://github.com/alibaba/taobao-iphone-device,请先点个 Star ,然后回来在看。
它有什么功能呢?
这个工具是纯 Python 写成的,所以也是跨平台的。也就是可以在能跑起来 Python 的 Windows、Linux、Mac 上运行。
其中网上最难找的应该是这个如何不依赖 xcode 启动 WebDriverAgent,这个工具就可以做到,原理的话可以翻源码。因为不依赖 Xcodebuild,所以就算你只有 Windows 或者 Linux 也能跑起来 iOS 自动化。
截止到发稿日期 2021/01/27,支持 iOS 手机的范围是 9.0-14.0
该工具是用 Python 写的,依赖 Python3.6+
安装方法
pip3 install -U tidevice
# 查看所有连接上的设备
$ tidevice list
List of apple devices attached
1234567892d8372eb752f413280722cdcc200954 iPhoneSE
# 截图
tidevice screenshot screenshot.jpg
# 启动苹果设置
tidevice launch com.apple.Preferences
# 查看已安装的第三方应用
tidevice applist
本来想录个视频的,但是 Windows 电脑还要去借,太麻烦了。就不录视频了。反正你知道 Windows 能跑就行。
第一步用数据线将 iPhone 手机连接到 PC 上,另外还需要手机上已经有WebDriverAgent这个 App 了。这个可以通过 xcode 编译源码安装,也可以用开发者证书重签名的 WebDriverAgent.ipa 安装到手机。
WebDriverAgent.ipa 在项目的 tests/testdata 目录下可以找到我之前打包好的。
启动就是一个命令 tidevice xctest
或者指定执行设备和 bundleId tidevice -u $UDID xctest -B $BUNDLE_ID
需要运行运行自动化的话,可以直接用 facebook-wda
或者用 iproxy 8100 8100
将服务映射出来用 Appium 或其他自动化框架连接也可以。
我觉的这种方式的优点
tidevice applist
tidevice reboot
tidevice screenshot
tidevice info
tidevice install https://.....ipa
更多功能参考
tidevice -h
我怕你忘记点 ,这里再贴一遍 https://github.com/alibaba/taobao-iphone-device
PS: 本小组正在招人,欢迎投递简历并留言。https://testerhome.com/topics/23010
膜拜大佬
另外日期是 2021 年?
有空试一下~~~
另外想问一下,如果在 Windows 上测 iOS,可以抓取元素吗? 例如 weditor 或者 appium inspector ?
大佬们都在做这种工具的东西 我们就只会拿开源的组合到一起。。而且组合的还不太行。。
膜拜大佬 orz,我们刚好有几个点卡在这上边
前排膜拜大佬
这段时间弄这个 xctest 直挠头,大佬牛逼,来炒个作业
正要考虑要不要找公司借一台 mac 跑自动化,这下好了,抽个时间就去试试,感谢大佬~
真赞啊,真及时,正想要这个功能!!!
有独立包吗?
神器
好东西!赞一个!
请问手机和电脑之间 wifi 连接方式支持么
大佬两个问题:
1.这一部已经成功,tidevice -u $UDID xctest -B $BUNDLE_ID 这时候怎么看 localhost:8100 ,页面打不开,怎么与 aietest 进行关联呢?
2.可否通过无线的方式建立连接
多谢大佬。
解决了 Windows 上不能做 ios 自动化的大问题 大佬牛逼!
大佬显示 ios 连接有问题
还有开发者证书重签名的 WebDriverAgent.ipa 应该只能安装在越狱设备上吧
点赞
赞,太强了
大佬求指教,用 wda 去自动化跑场景,收集性能数据时,发现跑一会手机就发烫严重,内存也升高很多,感觉 wda 对性能影响很大,这个有什么解决办法吗
1 和 2 不能从根本上解决问题,因为我用同一台手机,手动触发同样场景时,性能数据比较稳定,手机不怎么热
3 当前水平还不够。。
4 准备尝试用其他 app 试试,看看差异
5 有没有可能 wda 和被测 app 通信性能开销较大,或者 xcuitest 框架本身就有较大开销?xcuitest 自动运行应该和手动点点点调用 api 方式有所不同吧
执行
import wda
c = wda.USBClient()
print(c.info)
报:Unhandled endpoint: /session/7026A8F6-0569-4CFB-BE60-3F24BE4E59BE/wda/device/info -- http://127.0.0.1/ with parameters {
wildcards = (
"session/7026A8F6-0569-4CFB-BE60-3F24BE4E59BE/wda/device/info"
);
}
window 平台,怎么破啊,大佬
“iproxy 8100 8100 将服务映射出来用 Appium 或其他自动化框架连接”
请问 这个 具体 怎么在 window 上实现啊, 现在 想用 我们自己的 wda 测试下
windows 上怎么使用 iproxy 8100 8100 呢?需要怎么安装?
你这个看起来已经连接上了,只是 WDA 的版本没有支持/wda/device/info 这个接口。你试试print(c.status())
这个接口应该可以用的
可以查看 http://127.0.0.1:8100/status
返回是否正常,返回正常跑自动化肯定没问题,不正常的话检查端口转发、wda 是否启动成功
@codeskyblue 请问下 windows 上 想测试 自己的 wda, iproxy 端口 这个怎么实现啊
我也遇到了,只有 start_app stop_app 有问题会提示,其他都正常的。是不是和本身的 tidevice launch 冲突了?
File "D:\AirtestIDE-win-1.2.6\AirtestIDE\airtest\core\ios\wda_client.py", line 83, in httpdo
raise WDAError(r.status, r.value)
airtest.core.ios.wda_client.WDAError: WDAError(status=1, value=Unhandled endpoint: /session/54A497B2-033A-4977-8F53-17E727686FAB/wda/apps/launch -- http://127.0.0.1:8100/ with parameters {
wildcards = (
"session/54A497B2-033A-4977-8F53-17E727686FAB/wda/apps/launch"
);
})
弱弱的问一句,这个 ipa 怎么导出的,为啥我百度 xcode 导出 ipa 的方法最后有点不一样,导出来的是.xcarchive 文件,而不是.ipa
@codeskyblue 支持无线么?貌似都是通过 usb 通信的
命令行不太好传,增加了一个通过环境变量传参的方法 tidevice 0.1.3 tidevice xctest -e USE_PORT:8100
WebDriverAgent.ipa 如何重签打包?
@codeskyblue 我本地打包重签后,tidevice launch 正常,tidevice xctest 报错了,帮忙看下吧
运行后 tidevice xctest -B WebDriverAgentRunner -e USE_PORT:8100
提示
[I 210129 23:41:45 _device:955] Start execute test plan with IDE version: 29
[I 210129 23:41:46 _device:877] WebDriverAgent start successfully
但是浏览器访问:http://127.0.0.1:8100
依然无法打开。
百思不得其解。。。
你启动这个 tidevice xctest -B WebDriverAgentRunner 后
能访问http://127.0.0.1:8100吗?
我看你连上 airtest 了,我启动后这个总是不通,所以一直无法连 airtest 的。。。
大佬 help。。
我有看到这个文档,但是 Airtest 的 iOS-target 好像打不出来,能把帮忙看看这个可以打包出来吗?https://github.com/AirtestProject/iOS-Tagent
为啥我 Windows 下会提示 An unknown server-side error occurred while processing the command. Original error: Could not determine Xcode version: Could not find path to Xcode by symlinks located in /var/db/xcode_select_link, or /usr/share/xcode-select/xcode_dir_link
有人在 Windows 下用 Appium 调成功了吗
@codeskyblue 大佬,可以修改一下 tidevice/_device.py 中写死的 WebDriverAgentRunner 路径么,这个可以通过 app_info 获取,这样我就不仅可以通过 tidevice 启动 wda,而且也可以启动其他应用(比如我还可以启动 iOS monkey 了)
_launch_wda 方法下实测可以启动不同的应用
app_info = self.installation.lookup(bundle_id)
sign_identity = app_info.get("SignerIdentity", "")
logger.info("SignIdentity: %r", sign_identity)
app_container = app_info['Container']
target = app_info.get("CFBundleName").split("-")[0]
xctest_path = "/tmp/{}-".format(target) + str(session_identifier).upper() + ".xctestconfiguration" # yapf: disable
xctest_content = bplist.objc_encode(bplist.XCTestConfiguration({
"testBundleURL": bplist.NSURL(None, "file://" + app_info['Path'] + "/PlugIns/{}.xctest".format(target)),
"sessionIdentifier": session_identifier,
})) # yapf: disable
可以啊,要不要提个 pr 啊,坑位给你留着
有空试试,顶一下大佬。
win 电脑想搞 ios 的福音啊,但是 wda 安装也得用到 xcode 来编译打包?楼主大佬可否出个 windows-ios 平台安装 wda+tidevice+appium 得教程
优秀,弱弱问下性能测试啥时候支持呢
请问支持 Ios 模拟器吗?用模拟器的 udid,提示 no match
请教下,安装 ipa 包时,这个报错如何解决一下
请问支持 iOS 性能收集了吗?求解~
是 swiftmonkey 吗,能跑起来吗?
@yanderder 兄台,你这个问题解决了么,我也碰到你这个问题了
@yanderder 我是个人开发者账号啊。。。
好东西,感谢大佬,感谢阿里开源,之前楼主的 uiautomator2 就很好用,正准备去尝试 appium 做 iOS 自动化,现在可以试试这个了。
我通过包名启动 WebDriverAgent,报错:AssertionError: Invalid CFBundleExecutable: YYMobile
请教一下大佬是什么原因?
我发现 tidevice 启动 wda 后,直接调用 wda 的接口(如启动 app、获取控件树、控件查找等),在第一次的时候回特别慢,有时候多达五六分钟,难以忍受(health 检查会很快返回),请问您知道吗,有什么优化的点吗?
是不是用的 WDA 有问题,或者是 app 的问题,你试试启动个系统 app 试试 com.apple.Preferences
测试了下,发现是 app 的包名在手机上不存在,启动 app 也能成功,但是会耗时很长时间,包名正确很快就可以启动了
$ tidevice -u 5ef7f64cacb615d9172ebf0fa4377e7b172af89f xctest -B com.facebook.WebDriverAgentRunner.xctrunner
[I 210226 17:25:01 _device:909] BundleID: com.facebook.WebDriverAgentRunner.xctrunner
[I 210226 17:25:01 _device:911] DeviceIdentifier: xxx
[I 210226 17:25:02 _device:773] SignIdentity: xxx
[I 210226 17:25:02 _device:840] Launch 'com.facebook.WebDriverAgentRunner.xctrunner' pid: 257
[I 210226 17:25:02 _device:1003] ProductVersion: 12.0
[W 210226 17:25:02 _instruments:560] unexpected error: socket connection broken
[W 210226 17:25:02 _device:1033] xctrunner quited
貌似 tidevice 无法在低版本的 iOS 设备上启动,发现不止一个设备了,请问是这样吗?
SignIdentity 是 Apple Development: xxx (GC2H3795Y8)
也是使用的 12.0
这个 12.0 的设备升级到 14.4 之后,启动 wda 报错:
58:14 _device:518] ProductVersion: 14.4
[I 210301 15:58:14 _device:497] Download https://tool.appetizer.io/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14.4.zip -> /Users/chengming/.tidevice/device-support/14.4.zip
[I 210301 15:58:15 _device:497] Download https://github.com/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14.4.zip -> /Users/chengming/.tidevice/device-support/14.4.zip
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 400, in start_service
return self._unsafe_start_service(name)
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 415, in _unsafe_start_service
raise MuxServiceError("Could not start service: {0}! {2}".format(
tidevice.exceptions.MuxServiceError: Could not start service: com.apple.testmanagerd.lockdown.secure! Remember that you have to mount the Developer disk image on your device
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 550, in _request_developer_image_dir
self._urlretrieve(mirror_url, image_zip_path)
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 502, in _urlretrieve
r.raise_for_status()
File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://tool.appetizer.io/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14.4.zip
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/tidevice", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/tidevice/__main__.py", line 407, in main
actions[args.subparser](args)
File "/usr/local/lib/python3.9/site-packages/tidevice/__main__.py", line 203, in cmd_xctest
d.xctest(args.bundle_id, logger=setup_logger(level=logging.INFO))
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 921, in xctest
x1 = self._connect_testmanagerd_lockdown()
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 741, in _connect_testmanagerd_lockdown
conn = self.start_service(
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 402, in start_service
self.mount_developer_image()
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 585, in mount_developer_image
with self._request_developer_image_dir() as _dir: #, signature_path:
File "/usr/local/Cellar/python@3.9/3.9.1_6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/contextlib.py", line 117, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 554, in _request_developer_image_dir
self._urlretrieve(origin_url, image_zip_path)
File "/usr/local/lib/python3.9/site-packages/tidevice/_device.py", line 502, in _urlretrieve
r.raise_for_status()
File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://github.com/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14.4.zip
无法下载:https://github.com/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14.4.zip
有人实践过吗?速度怎么样
WebDriverAgent.ipa 在项目的 tests/testdata 目录下可以找到我之前打包好的。
没有找到这个文件呀?
Windows appium 桌面的版本, webdriver 似乎获取不到,appium 启动会报错, [info] [35m[Appium][39m Welcome to Appium v1.17.1
[info] [35m[Appium][39m Non-default server args:
[info] [35m[Appium][39m allowInsecure: {
[info] [35m[Appium][39m }
[info] [35m[Appium][39m denyInsecure: {
[info] [35m[Appium][39m }
[info] [35m[Appium][39m Appium REST http interface listener started on 0.0.0.0:4723[info] [35m[HTTP][39m [37m-->[39m [37mPOST[39m [37m/wd/hub/session[39m
[
[debug] [35m[BaseDriver][39m Event 'newSessionRequested' logged at 1614848011695 (16:53:31 GMT+0800 (中国标准时间))
[info] [35m[Appium][39m Appium v1.17.1 creating new XCUITestDriver (v3.22.0) session
[debug] [35m[BaseDriver][39m Creating session with MJSONWP desired capabilities: {
[debug] [35m[BaseDriver][39m "app": "com.xxxxxx",
[debug] [35m[BaseDriver][39m "automationName": "XCUITest",
[debug] [35m[BaseDriver][39m "deviceName": "rock",
[debug] [35m[BaseDriver][39m "platformName": "iOS",
[debug] [35m[BaseDriver][39m "platformVersion": "14.0",
[debug] [35m[BaseDriver][39m "udid": "xxxxxxxx",
[debug] [35m[BaseDriver][39m "useNewWDA": true,
[debug] [35m[BaseDriver][39m "newCommandTimeout": 0,
[debug] [35m[BaseDriver][39m "connectHardwareKeyboard": true
[debug] [35m[BaseDriver][39m }
[info] [35m[BaseDriver][39m Session created with session id: 18c8eb20-1a3a-4adc-aeba-935bc0b04e00
[debug] [35m[ios-device][39m Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible、
请问怎么解决的,我是用个人签名在 xcode 上编译安装的,安装后名字叫 IntergrationApp,执行 “tidevice xctest -B com.facebook.wda.WebDriverAgent.Runner”,报的错误跟你截图类似,只是 “YYmobile” 变成了 “IntergrationApp”
大佬,已加星。请有时间把 appium 的简要说一下,添加到 wiki 一下。今天只是把 facebook-wda 的方式基本看明白了,但是现在我已经基于 appium 搞得自动化框架,如果要按照 facebook-wda 的方式,底层的接口要重新封装。
大佬下午好,这两天琢磨了一下,还是没有琢磨出来,有两个问题请教一下,请有时间答复一下,十分感谢。
1、tidevice 能在 win 在拉起 wda,如果要执行自动化是不是只能 facebook-wda 的来执行自动化?如果基于 appium 来搞,需要修改什么内容么,始终感觉 usbmux 这里会有问题。
2、如果用 facebook-wda 的方式,如果来查找元素呢?
大佬十分感谢
@YY 在 appium 启动 WDA 之前启动 WDA 就可以了。windows 貌似会有一些兼容性问题,会提示 xcodebuild 找不到
嗯,是 usbmux 报错了,还是找的/var/run/usbmuxd,这个应该是 mac 的路径,但是在 win+appium 过程中,还是找的这个路径;我看 facebook-wda 中,在 win 系统,usbmuxd 的地址是(127.0.0.1, 27015),不知道这里怎么处理
另外想问一下,如果在 Windows 上测 iOS,可以抓取元素吗? 例如 weditor 或者 appium inspector ? 具体是怎么操作的,十分想了解如何在 windows 上抓取 ios 元素
配置如下
desiredCapabilities.setCapability(IOSMobileCapabilityType.WEB_DRIVER_AGENT_URL, "http://127.0.0.1:8100");
desiredCapabilities.setCapability("noReset", true);
desiredCapabilities.setCapability(IOSMobileCapabilityType.USE_PREBUILT_WDA, false);
desiredCapabilities.setCapability("useXctestrunFile", false);
desiredCapabilities.setCapability("skipLogCapture", true);
desiredCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 80000);
可以调通了,而且以获得 iOSDriver,成功了
io.appium.java_client.ios.IOSDriver, Capabilities: {browserName=, bundleId=XXX, databaseEnabled=false, deviceName=XXX, javascriptEnabled=true, locationContextEnabled=false, networkConnectionEnabled=false, newCommandTimeout=80000, noReset=true, platform=MAC, platformName=iOS, platformVersion=14.0, skipLogCapture=true, takesScreenshot=true, udid=XXXX, usePrebuiltWDA=false, useXctestrunFile=false, webDriverAgentUrl=http://127.0.0.1:8100, webStorageEnabled=false}
[Appium] Creating new XCUITestDriver (v2.133.1) session
[Appium] Capabilities:
[Appium] automationName: XCUITest
[Appium] platformName: ios
[Appium] platformVersion: 12.2
[Appium] deviceName: iphone
[Appium] udid: d822f7b41aa3e5a177df4c13fee14acfbefd63df
[Appium] bundleId: cn.tsign.esign
[Appium] webDriverAgentUrl: http://127.0.0.1:8100
[Appium] noReset: true
[Appium] usePrebuiltWDA: false
[Appium] useXctestrunFile: false
[Appium] skipLogCapture: true
[debug] [BaseDriver] W3C capabilities and MJSONWP desired capabilities were provided
[BaseDriver] Falling back to MJSONWP desired capabilities
[BaseDriver] Session created with session id: f49dd5d5-3ae9-4a2f-90db-777389b1ebdf
[debug] [XCUITest] Current user: 'hz\chennan'
uncaughtException: connect ENOENT /var/run/usbmuxd
{"date":"Mon Mar 29 2021 21:16:59 GMT+0800 (GMT+08:00)","process":{"pid":30008,"uid":null,"gid":null,"cwd":"D:\UICrawler","execPath":"C:\Program Files\nodejs\node.exe","version":"v12.18.3","argv":["C:\Program Files\nodejs\node.exe","C:\Users\chennan\AppData\Roaming\npm\node_modules\appium\build\lib\main.js"],"memoryUsage":{"rss":156278784,"heapTotal":128876544,"heapUsed":88516008,"external":2908613,"arrayBuffers":1368868}},"os":{"loadavg":[0,0,0],"uptime":3412934},"trace":[{"column":16,"file":"net.js","function":"PipeConnectWrap.afterConnect [as oncomplete]","line":1141,"method":"afterConnect [as oncomplete]","native":false}],"stack":["Error: connect ENOENT /var/run/usbmuxd"," at PipeConnectWrap.afterConnect as oncomplete"]}
请问大佬,WDA 在 xcode 编译安装后,名字为啥叫 IntegrationApp,执行 tidevice xctest -B com.facebook.wda.WebDriverAgent.Runner(查了包名,就是这个名字)报 “AssertionError: Invalid CFBundleExecutable: IntegrationApp”
Scheme 选错了吧 @liuau86
非常感谢,我又找了下开发,开发选择红框这个无法打包安装,只能编译,是因为缺了什么吗?我从 git 上下载的 WDA 压缩包
开发选择红框这个无法打包安装,只能编译
具体是怎么无法打包安装,有具体截图或者错误信息之类的吗?
能编译通过,应该就能安装。你用 run test 这样的方式运行,就会自动装上了。装上的标志是手机里面会有一个 WebDriverAgent 的应用,图标类似下图这样:
有没有人在 Linux 的 docker 容器里面连接 iphone 手机成功执行 ios 自动化的?求指导。。。
有哪位大佬 帮忙解答下。 tidevice xctest 后,直接退出。是什么原因。
我使用 win7 用
itunnel_mux.exe --iport 8100 --lport 8100 好像 itunes 版本不兼容。唉
怎么解决,各位大佬有碰到吗
接口测试工具的话可以试试国产的接口测试工具 apipost,使用起来很方便简介,不需要安装环境,全中文使用起来方便。下载地址:https://www.apipost.cnwww.apipost.cn
性能采集(类似 PerfDog)不过这块暂时只有 API 可以用。 大佬 这个 api 在哪边
大佬,花名是啥,求认识@codeskyblue
@codeskyblue
接入 14.0 系统的 ios 设备,界面有了但是点击没反应, 提示这个……
大神求解
Exception in thread perf:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_perf.py", line 247, in append_data
for _type, data in idata:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_perf.py", line 234, in iter_network_flow
for nstat in d.instruments.iter_network():
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_instruments.py", line 958, in iter_network
channel_id = self.make_channel(channel_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_instruments.py", line 315, in make_channel
result = self.call_message(0, '_requestChannelWithCode:identifier:', aux)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_instruments.py", line 360, in call_message
return self.wait_reply(_id).result
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tidevice/_instruments.py", line 550, in wait_reply
raise MuxError("connection closed")
tidevice.exceptions.MuxError: connection closed
git 上演示的脚本,udid 和 bundleId 都替换过了 运行就报这个错误 但后续还有正常的输出
R: network {'timestamp': 1621923971294, 'downFlow': 4915.939453125, 'upFlow': 6.578125}
R: network {'timestamp': 1621923971294, 'downFlow': 644.9013671875, 'upFlow': 6.0810546875}
R: network {'timestamp': 1621923971295, 'downFlow': 4.384765625, 'upFlow': 3.95703125}
time.sleep(1)会输出几组数据 这几组数据时间戳相同的话 不同行的数据有什么区别吗
大佬,如果用 linux 执行,是不是也必须要安装 iTunes 呢?iTunes 在 linux 兼容性怎么样呢?有版本要求没?
大佬你好,我正在学习您开源的 ATX-automator,然后发现,UiObject 的 parent 方法还没有实现 是之后不再维护了吗?
大佬,linux 的环境整了,但是报 var/run/usbmuxd unable to connect ,是 usbmuxd 没有安装好么?谢谢,大佬
大佬,我这边也是在 docker 下部署的,命令这样执行么?tidevice list -v /var/run/usbmuxd:/var/run/usbmuxd 命令敲下去后,说命令参数非法呢?还是命令没有搞对,谢谢大佬
好的,谢谢大佬。还有一个问题请教一下,wda 隔一段时间就会不可用,就需要重新编译 wda,这个是为什么呢?请问有解决方法么?
提问:webdriver 启用 appium 报错如何解决呀?以下为报错内容:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find path to Xcode by symlinks located in /var/db/xcode_select_link, or /usr/share/xcode-select/xcode_dir_link
window10 下报这个错误,是什么原因啊?
启动后第一次跟 wda 通信很慢,需要一分钟左右,后面每次都很快,是啥原因:
1、启动命令:'tidevice -u {0} xctest'.format(did)
2、wda 初始化:driver = wda.USBClient(self.device_id, port=8100)
3、跟 wda 通信:print(driver.info)
"usePrebuiltWDA": "false",
"useXctestrunFile": "false",
"skipLogCapture": "true"
加这 3 个即可
能指导一下怎么在 Linux 里面怎么实现 iOS 的 stf 吗?
请问一下用什么定位元素呢?我输入http://localhost:8100/,会提示拒绝访问,这是为什么呢
[I 211019 11:24:04 _device:990] BundleID: com.jd.uiclimber.xctrunner
[I 211019 11:24:05 _device:992] DeviceIdentifier: 00008030000E44623E03402E
[I 211019 11:24:05 _device:834] SignIdentity: 'Apple Development: xxxx@qq.com (FRXTU68BU3)'
[I 211019 11:24:05 _device:840] CFBundleExecutable: WebDriverAgentRunner-Runner
[I 211019 11:24:05 _device:871] AppContainer: /private/var/mobile/Containers/Data/Application/046043DA-E3CC-45A3-9CDA-98D1CB7FB1FA
[I 211019 11:24:05 _device:911] Launch 'com.jd.uiclimber.xctrunner' pid: 11363
[I 211019 11:24:05 _device:1086] ProductVersion: 14.4.2
[I 211019 11:24:05 _device:1033] Start execute test plan with IDE version: 29
[I 211019 11:24:07 _device:1116] xctrunner quited
我这边也是一样的现象 wda 没有启动起来
C:\Users\DDDerek>tidevice -u eedb3ab67816fbfa0884a3fbaa4c3508765f8237 relay 8100 8100
[D 211116 14:33:30 _relay:36] handle stream from: ('::1', 62866, 0, 0)
[E 211116 14:33:30 _relay:46] connect to device error: UsbmuxReplyCode.ConnectionRefused
大佬,使用最新的 tidevice,会报错是因为什么?
问一下,tidevice 有相关的命令可以获取到 ios 的分辨率和内存吗?
tidevice 可以获取/操作模拟器吗
通过命令 tidevice -u 00008110***************** perf -B com.************ 生产出来的数据各项指标产出率不太稳定
看了源码也测试了下发现 tidevice 是通过 usbmux 获取数据自己解析这里确实会出现生产数据有间隔的情况
WebDriverAgent.ipa 好像没有了
跟 facebook 的 idb 很像啊,idb 好像也可以
是的有点像,不过 idb 有一个中间服务层。通过 oc 能支持苹果虚拟机,功能更多一点。不过之前用的时候感觉稳定性不是很好。另外还有一个工具叫 go-ios 也跟 tidevice 类似
膜拜大佬,但是 tidevice perf 命令下,cpu 参数的含义是什么呀,value 和 sys_value 搞的一头雾水
不是,哪有这个目录呀 tests/testdata