Airtest/appium使用(MAC系统)
appium:
环境配置:
统一:
安装python3、安装Airtest/appnium
Android:
安装:java、sdk(下载安装android studio(主用于下载sdk,运行模拟器))
mac环境变量配置(python,sdk,java):
终端运行:
sudo tuoch ~/.zshrc
open ~/.zshrc
写入:
export ANDROID_HOME=/Users/edz/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH/:$ANDROID_HOME/platform-tools
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home"
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
#Setting PATH for Python 3.7
export PATH=${PATH}:/Library/Frameworks/Python.framework/Versions/3.7/bin
alias
python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7"
export PATH=${PATH}:/Library/Frameworks/Python.framework/Versions/3.7/bin
alias pip="/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3"
注意:苹果公司发布了macOS Catalina(10.15),macOS的默认终端从bash变成了zsh,也就是说只有在10.15之后的版本上才需要这样配置。
Ios + appnium:
详细步骤参考(appium):https://www.cnblogs.com/feng0815/p/8215587.html
- 其中WebDriverAgent 在运行时报错,在下面网址中下载替换:
https://github.com/facebookarchive/WebDriverAgent
自带的WebDriverAgent 位置一般在 (/Applications/Appium .app/Contents/Resources/app/node_modules/appium/node_modules/webdriveragent)将其替换就可以,在成功运行xcode项目时,xcode会自动启动模拟器,此时,在aritest中就可以连接ios模拟器
注意:目前仅仅实现了模拟器,连接真机运行xcode报错(),真机待验证
Airster的连接
airtest连接Android
注意:在操作这步之前最好,在终端将执行 adb kill-server 将adb杀掉,不然会与airtest 冲突, 在连接过程中选择下面右图中其中任一选项,可以连接到手机画面就成功了
airtest连接ios
使用xcode运行ios模拟器,点击下图“连接”按钮,稍等一会就可以连接成功
airtest使用方法:
基本导入的模块,
-*- encoding=utf8 -*-
__author__ = "edz"
from airtest.core.api import *
#初始化
auto_setup(__file__)
#导入poco模块
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
Poc0 = AndroidUiautomationPoco(use_airtest_input=True,screenshot_each_action=False)
Airtest辅助,基于图像定位
对截取的图像进行操作
poco一般常用方法:
停止应用:stop_app(packageName)
启用应用:start_app(packageName)
元素查找:popc(Element) #Element,可以通过Poco辅助窗获取
点击:click()
文本输入:text(“输入内容”)
等待方式:
设置隐式等待:
ST.FIND_TIME = 60 #设置隐式等待时长,为全局
wait(Element) #等待60s,隐式等待
强制等待:sleep(num)
滑动: swipe((x1,y1),(x2,y2))
断言:
1.第一种断言方式:验证UI界面
a、存在 assert_exists(“element(.png文件)”,”message”)
b、不存在 assert_not_exists(“element(.png文件)”,”message”)
2. 断言第二种方式:验证数值
assert_equal:断言相等
assert_not_equal:断言不等
其他:待补充
在poco辅助窗:(获取Element)点击录制按钮图标,再次点击右边所需要点击的按钮,中间就会自动生成一个操作脚本.
总结:appium与airtest相比,airtest使用更简易,效率上更高
区别:
相对来说airtest 更易上手
Airtest 效率更高,点击元素就可以自动编辑脚本速度更快,appium录制相对较慢;airtest脚本编辑也更高一些,appium中需要一个一个查找
appium相对于airtest功能更丰富一些
Airtest中遇到的问题
-
airtest与本地adb版本冲突,即在airtest中无线连接手机时显示offline解决方法
原因是 adb 版本低,升级 adb 即可。
首先去谷歌的安卓平台下载 adb 软件包,点我下载。解压后,把 adb 命令复制 /Applications/AirtestIDE.app/Contents/MacOS/airtest/core/android/static/adb/mac/ 目录下,覆盖旧的 adb 命令。
python运行报adb 冲突:
替换文件位置:***/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb***
win系统:aritestIde所在目录 \AirtestIDE\airtest\core\android\static\adb\windows -
mac系统中airtest中的chromedriver文件位置:Applications/AirtestIDE.app/Contents/Resources/plugins/selenium_plugin/
mac系统查看文件编码:
安装enca
brew install enca
查看编码格式
enca -L zh_CN filename //或 enca filename
转换编码格式
enca -L zh_CN -x UTF-8 filename
enca -x UTF-8 filename