1. 准备工作

    1. 技术原理

  1. 手机端的WDA Runner(WebDriverAgent)类似于appium测试框架中的 UIAutomator Server,将从客户端接收到的控制命令转换为XCUITest 相关API操作,实现对应用界面的控制。WebDriverAgent应用需要通过xcode编译安装。

    1. usbmuxd是苹果提供的一个服务,用于USB和TCP协议之间的转换,实现在没有网络的情况下也可以连接设备,iTunes和Xcode就使用到了这个服务,所以在环境安装中需要在windows上安装一个iTunes。

    2. WDA的启动使用阿里开源的tidevice工具。

    3. Language Bindings为不同语言的测试脚本,比如基于python语言的facebook-wda,基于go语言的gwda等。

  2. 环境抢建

    1. iOS 设备安装 wda

      1. 安装Xcode

      2. 下载WebDriverAgent

github下载地址

  1. 安装iTunes

    1. 下载安装Windows 版 iTunes方法:下载地址

    2. iTunes安装成功后,连接上你的iPhone:

  1. 安装python,windows10安装python详细过程

  2. 安装pip

    1. 官网下载pip安装包,官网地址:https://pypi.org/project/pip/

    2. 下载pip的tar包,如图:

    3. 解压后,通过cmd进入解压目录,执行命令:python setup.py install

  3. 安装tidevice

    1. 打开cmd,输入命令: pip3 install -U "tidevice[openssl]",如图表示安装成功

    2. 查看tidevice版本号验证是否安装成功,打开cmd,输入命令:tidevice version或tidevice -v,如图

  4. 安装git,下载地址

  5. 安装weditor(本人n次安装失败,找到了源码安装方法)

    1. 先用git下载源码,git clone https://github.com/openatx/weditor

    2. 基于源码安装pip3 install -e weditor

  1. 连接测试

    1. 手机安装WebDriverAgent

    2. 启动驱动器

tidevice  wdaproxy -B com.facebook.WebDriverAgentRunner.xctrunner --port 8100

  1. 启动weditor

    1. python -m weditor,会自动打开一个浏览器,选择iOS

    2. 输入http://localhost:8100,连接

  2. python命令测试

import wda
wda.DEBUG = True
c = wda.Client('http://localhost:8100')
c = wda.Client() # 读取环境变量DEVICE_URL,如果没有使用默认地址:http://localhost:810
c.home() #点击home键
s = c.session("com.Litta.LittaCoach") # 打开app
  1. 用例编写

    1. 元素定位

      1. s(name='我的',className='Button')

  1. s(nameContains='账号设置',index=0)

  1. s.xpath('//Table/Cell[2]/Button[1]/StaticText[1]')

    1. s(className='XCUIElementTypeTextField')

    2. s(predicate='name BEGINSWITH "账号设置"')

  2. 元素事件

    1. s(name='我的',className='Button').tap

    2. s(nameContains='账号设置',index=0).click()

    3. s(name="我的").tap_hold(2.0)

  3. text操作

    1. s.xpath('//ScrollView/Other[1]/Other[1]').set_text('1')

    2. s(className='XCUIElementTypeTextField').set_text('18651660882')

    3. s(className='XCUIElementTypeTextField').clear_text()

  4. 异常

    1. assert s(nameContains='账号设置',index=0).wait(1.0)

  5. 打印元素信息

    1. ele = s(predicate='name BEGINSWITH "账号设置"')   print(ele.name)

    2. ele = s(predicate='name BEGINSWITH "账号设置"')   print(ele.text)

  6. 屏幕截图

    1. s.screenshot().save("test.png")

  7. 手势滑动swipe

    1. s.swipe(fx, fy, tx, ty, duration=0.5) # 从(fx, fy)滑到(tx, ty),坐标值可以是绝对值或者百分比,duration单位秒

    2. s.swipe_left()

    3. s.swipe_right()

  8. WDA教程

https://github.com/openatx/facebook-wda

https://blog.51cto.com/u_15649298/5479308

https://blog.csdn.net/QQqun810119819/article/details/120939806

基于windows的iOS自动化测试相关推荐

  1. Windows实现appium+iOS自动化测试

    在前面的文章介绍了Windows上安装配置tidevice,环境搭建好后就实现了在Windows运行iOS自动化的第一步,接下来本文重点介绍在Windows上如何运行iOS自动化测试. 如果没有安装好 ...

  2. 基于 KIF 的 iOS UI 自动化测试和持续集成

    客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...

  3. Web 自动化解决方案 [开源项目] 基于 Selenium 的 Web 自动化测试框架完美版

    欢迎查阅Selenium(Web自动化测试框架体系) Selenium ) Selenium是一个用于Web应用程序的自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样• 支持的浏览器包括I ...

  4. App 自动化解决方案 [开源项目] 基于 Appium 的 UI 自动化测试框架完美版

    欢迎查阅Appium(Android自动化测试框架体系) Appium Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,可用于IOS和Android以 ...

  5. iOS自动化测试(一)-技术方案、环境配置与疯狂踩坑

    移动端的自动化测试,最常见的就是Android自动化测试,IOS相较于Android要安全稳定的多,但是IOS也是一个需要测试的方向,作为测试,不认真测一下心里还是过意不去,只是我个人觉得Androi ...

  6. 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)

    最近看了关于XMPP的框架,以文本聊天为例,需要发送的消息为: <message type="chat" from="kang@server.com" t ...

  7. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)

    原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...

  8. Unity3d(U3D) Windows/Android/IOS 播放rtmp/rtsp方案

    如果基于Unity3d完全重新开发一个播放器,代价大,周期长,不适合快速出产品,最好的方式就是集成现有Native平台上成熟稳定播放器. 集成Navtive播放器可行性分析: 安卓: Unity3d可 ...

  9. [iPhone高级] 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)

    最近看了关于XMPP的框架,以文本聊天为例,需要发送的消息为: [html] view plaincopy <message type="chat" from="k ...

  10. python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

    Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...

最新文章

  1. Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4
  2. 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
  3. pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件
  4. 开展网络营销推广能为企业网站带来怎样的网络营销推广优势?
  5. 前端篇--------1.css学习笔记
  6. linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...
  7. 运行Jenkins部署任务
  8. 不敢摔!三星Galaxy Fold换屏费用可以入手一部华为Mate 30了
  9. 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
  10. 麦克纳姆轮运动特性分析(图片版)
  11. python 代码命令大全-深度学习中python常用命令
  12. c语言任务设计书,C语言课程设计任务书(必备).pdf
  13. 项目实战 五 拟合直线 获得中线
  14. execution表达式里写多个条件
  15. 面试: 华为综合测试
  16. SAP合同类型的使用
  17. React父传子、子传父
  18. 学习Linux(centos7)准备的工具
  19. Flink中的CEP(二)
  20. 【Linux】Linux安装

热门文章

  1. ftp客户端使用详细说明【linux和windows】
  2. 关于anaconda下载包的位置的问题
  3. c 语言游戏代码大全,给我提供个小游戏的C 语言代码
  4. The Things Network LoRaWAN Stack V3 学习笔记 2.6 新增一个 CN470 子频段
  5. Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...
  6. android stub,Android:ViewStub
  7. 全网最全移动端App性能测试方法,值得收藏!
  8. GJB5000A与DO178B/C简介及对比
  9. 基于matplotlib对iris数据集进行数据分析
  10. java 高斯投影_高斯投影正算公式以及java代码