自动化测试环境安装
WINDOWS环境下使用
- 安装Python开发环境并配置环境变量(2.7版本或者更高版本)
下载对应版本:http://www.python.org/downloads/
安装好了后添加到环境变量。例如:D:\Python27和D:\Python27\Scripts都要添加到 环境变量path中,否则pip无法使用。
- 安装并配置jdk
参考:https://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html
- 安装并配置sdk【参考https://blog.csdn.net/DaisyCold/article/details/122602714、https://blog.csdn.net/Lily_XL/article/details/120047368】
(1) 添加系统变量ANDROID_HOME, 值是Android SDK的安装路径
(2) 把Android SDK下的platform-tools路径和tools路径添加到系统变量Path
参考:https://jingyan.baidu.com/article/f71d603757965b1ab641d12a.html
- 安装Nodejs (Appium使用Node.js作为服务器引擎)
参考:https://jingyan.baidu.com/article/5552ef47812ba9518ffbc915.html
(1) 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org
(2) 公司内部代理如下:
npm install --registry=http://maven.iflyresearch.com/repository/cnpm/
(3) cnpm install -g appium@1.6.1【版本号需要及时换,有时需要卸载nodejs,用npm直接安装,有时一直装不了,就用npm直接装也可】
(4)
npm config set registry https://registry.npm.taobao.org npm install appium -g --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver npm install -g node-gyp
- 安装一些必须模块
(1) pip install selenium==2.53.1 推荐使用2.53.1版本,其它版本也可以
(2) pip install appium-python-client
(3) 查看selenium版本 pip show selenium
- 安装anyproxy服务(视情况而定需不需要安装)
(1) cnpm install -g anyproxy@3.10.4
(2) 生成根证书anyproxy-ca anyproxy --root (生成后需要到本地目录双击.crt文件安装)
(3) 手机端安装证书
a) 电脑端输入anyproxy -i
b) 手机端设置wifi代理为本地ip,端口号为8001
c) 手机浏览器上输入http://ip:8002/fetchCrtFile (IP换成本机的IP),安装证书
备注:anyproxy抓包数据可通过访问http://ip:8002 查看
7.启动方式
(1)adb服务开启
a) adb kill-server 关闭可能有的adb服务
b) adb devices 列出当前电脑可连接移动设备【设备的允许usb调试一定要打开,还有注意其它程序adb.exe对其影响,例如360和wps里】
c) adb connect 设备名(夜神模拟器为127.0.0.1:62001)
d) adb connect 设备名(逍遥模拟器为127.0.0.1:21503)【注意:逍遥模拟器安装目录下自带adb.exe 如果和系统设置的adb版本不一致,会出现offline,此时需要将系统的adb.exe替换逍遥自带的adb.exe】
e) adb shell ime list -s 列出当前设备所有的输入法
注意:appium自带的输入法io.appium.android.ime/.UnicodeIME一开始不会出现,需要在代码里设置运行后才会出现,设置代码如下:
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyBoard'] = True
f) adb shell ime set com.baidu.input_huawei/.ImeService 切换输入法
g) adb shell getprop ro.build.version.release 显示设备版本号
h) 连接多设备时,shell前需要指定具体哪个设备,adb -s xxx shell ....
i) adb shell dumpsys activity top | find "ACTIVITY" 获取要测试的app包名与起始页
j) adb connect 127.0.0.1:21503 重启后需要连接下,不然找不到设备
k) adb -s 127.0.0.1:21503 shell input swipe 500 500 500 100 上滑解锁
l) adb -s 127.0.0.1:21503 shell input tap 500 500 点击屏幕
m) adb -s 127.0.0.1:21513 shell rm -r -f /data/system/*.key 如果是加了代理的图案,需要运行这个,去掉图案解锁
(2)appium服务开启
a) appium -a host -p port -U uuid -bp bootstrap_port --session-override
例如:appium -a 0.0.0.0 -p 4723 -U 127.0.0.1:21503 -bp 4724 --session-override
b) 有几个设备开始几个端口,一般以4723开始,每次增2,如:
appium -a 127.0.0.1 -p 4723 -U 设备号 -bp 4724 --session-override
appium -a 127.0.0.1 -p 4725 -U 设备号 -bp 4726 --session-override
(3) 运行python脚本
(4) 自动化开启模拟器
a) Cd D:\Program Files\Microvirt\MEmuHyperv
b) 运行MEmuManage.exe list runningvms 查看运行的模拟器
c) Cd D:\Program Files\Microvirt\MEmu
d) 运行MEmuConsole.exe "MEmu"
e) 运行MEmuConsole.exe "MEmu_1" 以此类推
(5) 自动化关闭模拟器
A) 运行taskkill /im MEmu.exe /f 结束进程
B) MEmuManage.exe controlvm "MEmu" poweroff 配合使用