iOS设备自动化操作的环境搭建和代码演示

Overview

iOSAutomation

最后更新:20210903

项目功能

iOS自动化测试:用Python代码实现iOS设备的自动化操作

目前主要去(跑通和调试)自动化操作iPhone中的微信的公众号

依赖库

源码改动

openatx/facebook-wda

自己对于 openatx/facebook-wda

做了些优化,改动了很多代码,主要有:

  • 新增
    • Session
      • get_settings
      • set_settings
      • setSnapshotTimeout
    • Selector
      • _wdasearch_single
      • find_element_id
      • find_element
  • 优化
    • Session
      • _percent2pos
        • 支持float类型的非0~1之间的xy
    • Selector
      • get
        • 默认只搜索和返回单个元素
  • 等等

最新文件放在:

  • 最新版:0.7.2
    • wdaTest/optimized/wda/v0.7.2/__init__v0.7.2_merged.py
  • 旧版:0.6.2
    • wdaTest/optimized/wda/v0.6.2/__init__v0.6.2_updated.py

初始化

pip3 install facebook-wda

安装了openatx/facebook-wda后,要修改本地wda的代码。

本地wda代码位置:可通过

pip show facebook-wda

查看到:

Location: /Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages

对应路径就是:

/Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages/wda/__init__.py

然后把项目中的最新改动:__init__v0.7.2_merged.py覆盖到:

/Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages/wda/__init__.py

即可。

调试

启动server端=host端

两种方式:

  1. 命令行:xcodebuild

终端中

进入目录:

cd refer/WebDriverAgent

再去运行:

CUR_UDID=$(idevice_id -l | head -n1)
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$CUR_UDID" test

或:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
  1. 图形界面:XCode中Test

Xcode -> Product -> Test

然后能在log中看到类似这种输出,就说明服务启动成功了:

2020-02-27 09:24:42.711437+0800 WebDriverAgentRunner-Runner[619:225570] Built at Feb 25 2020 17:47:05
2020-02-27 09:24:42.845352+0800 WebDriverAgentRunner-Runner[619:225570] ServerURLHere->http://192.168.31.43:8100<-ServerURLHere
2020-02-27 09:24:42.871504+0800 WebDriverAgentRunner-Runner[619:225733] Using singleton test manager

其中

http://192.168.31.43:8100

是此时的服务端的URL

注:

部分手机,比如此处 iPhone 8 Plus,无法用IP,只能换用端口转发

iproxy 8100 8100

然后去访问:

http://localhost:8100

比如:

http://localhost:8100/status

即可。

更新细节详见单独教程:

iOS自动化测试利器:facebook-wda

运行代码调试

VSCode中调试代码:

wdaTest/wdaTest.py

You might also like...
Owner
Crifan Li
http://www.crifan.com/about/
Crifan Li