使用Python自动化测试iOS项目,ios如何自动化测试,WebDriverA
使用Python自动化测试iOS项目,ios如何自动化测试,WebDriverA
WebDriverAgent在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。
项目地址:https://github.com/facebook/WebDriverAgent
facebook-wda这个Python库,通过直接构造HTTP请求直接跟WebDriverAgent通信。
项目地址:https://github.com/openatx/facebook-wda
安装WebDriverAgent
从github上下载代码
1 | git clone https://github.com/facebook/WebDriverAgent |
安装依赖
1 | ./Scripts/bootstrap.sh |
WebDriverAgent使用的是Carthage来管理依赖的,所以你需要安装Carthage环境。
配置好证书,然后Command+U运行,不是Command+R。
如果想用USB通信的话看这里https://github.com/facebook/WebDriverAgent/wiki/USB-support
正常启动后效果如图:
输出你手机ip地址说明正常启动了。
访问http://ip:8100/inspector可以看到App的UI图层,方便写测试脚本。
安装facebook-wda
1 | pip install --pre facebook-wda |
小试牛刀:完成App自动下载,安装
(先取消Touch ID安装App)
利用Safari跳转App在AppStore页面
1234567 | app_url = ‘https://itunes.apple.com/cn/app/id425349261?mt=8‘c = wda.Client(‘http://ip:8100‘)# 打开safaris = c.session(‘com.apple.mobilesafari‘, [‘-u‘, app_url])e = s(name=u‘打开‘).get(timeout=10, raise_error=False)e.tap()time.sleep(5) |
下载App
1234567891011121314151617181920212223242526 | s = c.session()if s(className=‘Button‘, name=u‘获取‘).wait(timeout=10, raise_error=False):# 以前没有下载过print(‘点击获取‘)e = s(className=‘Button‘, name=u‘获取‘).get(timeout=2, raise_error=False)e.tap()# 等待显示安装e = s(className=‘Button‘, name=u‘安装‘).get(timeout=30, raise_error=False)if e:e.tap()print(‘是否需要输入密码‘)if s(className="SecureTextField").wait(timeout=5, raise_error=False):print(‘输入密码‘)e = s(className="SecureTextField").get(timeout=5, raise_error=False)e.set_text("password")print(‘点击登录‘)e = s(className=‘Button‘, name=u‘登录‘).get(timeout=5, raise_error=False)e.tap()else:print(‘不需要输入密码‘)elif s(className=‘Button‘, name=u‘重新下载‘).wait(timeout=5, raise_error=False):print(‘点击重新下载‘)e = s(className=‘Button‘, name=u‘重新下载‘).get(timeout=10, raise_error=False)e.tap()else:exit() |
显示下载进度
1234567891011121314151617 | # 有个载入的过程while s(className=‘Button‘, name=u‘正在载入‘).wait(timeout=3, raise_error=False):pass# 隔3秒检查有没有下载完成print(‘等待下载完成‘)while s(className=‘Button‘, name=u‘正在下载‘).wait(timeout=3, raise_error=False):value = s(className=‘Button‘, name=u‘正在下载‘).get(timeout=3, raise_error=False).valueif value is None:continuesys.stdout.write("已下载%s\r" % value.encode("utf-8"))sys.stdout.flush()time.sleep(1)sys.stdout.write("已下载100%\r")sys.stdout.flush()# 下载完成print(‘\n下载完成‘) |
保存文件为 Test_Demo.py ,运行测试
12345 | $ python Test_Demo.py点击重新下载等待下载完成已下载100%下载完成 |
小结
通过使用WebDriverAgent和facebook-wda能测试任何App(也可以制作简单的App辅助工具,例如最近比较火的跳一跳)。
使用Python自动化测试iOS项目
相关内容
- Python_Example_装饰器,Python装饰器,Author: 楚格
- Python数据类型详解——列表,,Python数据类型
- qq机器人 python实现 自动回复,,我以前写的代码我现在
- Python·Jupyter Notebook各种使用方法,,PythonJupy
- python调用Sikuliapi,,Sikuli是由MI
- Python3 条件控制(九),,Python条件语句
- python http通信实现,,http协议通信需要
- python中的__enter__ __exit__,,我们前面文章介绍了迭
- Python中import的as语法,,在Python中,如
- python Stark 组件,,Django Adm
评论关闭