笔记本使用appium连接与操纵真机并执行测试脚本(appium环境搭建教程、简略操作步骤)

忙活了一天,绕了一大堆弯路(因为百度这方面的中文资料都太零碎了),总算是成功用appium连上真机跑脚本了,虽然脚本没跑成功(提示包不能启动,因为这个是公司自研的软件,明天再去调查调查问题),但是手机提示appium setting并且自动关闭软件的时候,好歹是能通过电脑操控手机了。

首先,jdk、、SDK、nodejs、jre、python、Appium-Python-Client这些自然不必说,直接按着教程来,一天我就在环境变量里添加了一大堆东西。
npm下载换成淘宝源,一开始直接使用npm命令还是有一些下载不下来,用淘宝源就没有问题了。
第一次安装appium我是下载的压缩包直接解压的,有一个带UI的可视化界面,但是一直提示我连接出错,于是我又把它给卸载了,然后再用的npm -g下载到全局,就是网不好等的久一点,之后就没有问题了。

网上好多教程都是详细讲软件安装,之后就非常的简略,我看的时候就一头雾水,不过现在想想确实也蛮简单的,只是难者不会会者不难而已。
我是使用真机(努比亚)直接连的电脑,没有用到模拟器。
首先手机用USB连接电脑,打开调试开关,电脑直接CMD中使用adb devices命令查看你的手机UDID。
在这里插入图片描述
然后使用appium -a127.0.0.1 -p4723 -Uxxxxx(这里的xxxx是上面查询的设备号)命令开启appium服务,127.0.0.1跟4723都是appium默认的本机地址与端口,我也没有修改,只要这个跟之后你测试脚本里的地址一致就可以了。
笔记本使用appium连接与操纵真机并执行测试脚本(appium环境搭建教程、简略操作步骤)_第1张图片
然后开始编写脚本,我下了一个pycharm用来写python脚本。

from appium import webdriver
import time
#hrst.singlepawn.mainprogram/hrst.singlepawn.bluetooth.BluetoothPairingActivity



desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '6.0.1'
desired_caps['deviceName'] = 'nubia Z17miniGG'
desired_caps['appPackage'] = 'com.xxxx.xxxx'
desired_caps['appActivity'] = 'com.xxxx.xxxx.activity.xxxxactivity'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

driver.find_element_by_id("com.xxxx.xxxx:id/bluetooth_switch_btn").click()
time.sleep(3)
driver.quit

上面的appPackage跟appActivity是你测试的包的名字,在CMD中使用命令
adb shell dumpsys window w | findstr / | findstr name=
或 adb shell dumpsys window |findstr mCurrent
或 adb shell "dumpsys window w|grep /|grep name=|sed ‘s/mSurface=Surface(name=//g’|sed ‘s/)//g’|sed ‘s/ //g’"可以查看(你需要在手机上打开这个软件)
在这里插入图片描述

然后用例中需要比如点击某个模块,就是这条代码driver.find_element_by_id("com.xxxx.xxxx:id/bluetooth_switch_btn").click()通过ID寻找目标模块,如何知道目标ID?我是直接用SDK自带的工具uiautomatorviewer(路径为SDK下\tools\bin\uiautomatorviewer.bat)就可以查看了。
我第一次打开的时候,提示Error taking device screenshot:EOF,我按照网友的经验,打开了android studio再开启就成功了,如果还不行,就通过管理员身份启动,并且把界面最大化。
然后找到你需要的元素,写一个简单的用例,保存成py文件就可以了。
然后在命令行中python test.py,这样就可以成功操作手机啦!
查资料的时候很多网友说遇到过各种版本过新或者过旧导致无法使用的问题,我暂时还没有遇到。
最后运行的时候报错一大串,什么max retries exceeded、failed to establish a new connection:[errno 10061]什么的,后来才发现是我不小心又把appium的服务关了, 再重新用appium -a127.0.0.1 -p4723 -Uxxxxx打开,重新跑一边脚本文件就可以了。

你可能感兴趣的:(appium)