Eclipse+appium+夜神虚拟机环境调试
最近在学习python,发现教程几乎都是连接手机真机,但是目前手里没有可测试的真机,所以想到用虚拟机练习。网上关于这部分的内容真的是非常少,好不容易找到一个遇到的问题也是卡了很久才解决,所以总结下过程和遇到的问题,重新回顾一下。这部分环境搭建确实挺复杂,会遇到各种各样的问题,大家需要有点小强精神哦
1. python自动化实现原理
首先先来了解一下appium工作原理,以及如何进行交互,方便我们了解自己需要搭建什么样的环境
实现原理如上面图所示,appium自动化环境包括三个部分:客户端,服务端,移动设备,那么这3部分是如何工作的呢?
1. 客户端编写好脚本后,运行代码,这里的客户端支持各种语言(python,java等),通过webdriver协议调用appium服务器
2. 服务端首先建立一个会话,通过4724端口和移动设备通信
3. 移动端bootstrap.jar接受到请求后发送给UIAotomator
4. UIAotomator执行脚本命令,进行自动化测试
2. 搭建环境所需工具安装
通过上面的过程,我们了解到只要从这3端中挑选出适合自己的工具就可以了
这里给大家介绍一个很好的搭建网址,供大家参考,介绍的非常详细,相信比我写出来的会好很多:http://www.testclass.net/appium/
这里附上我自己下载的安装包路径,环境是win7 64 位:https://pan.baidu.com/s/1hsxT9FQ
安装包3.环境调试
在这一部分,我将按照实际过程的步骤进行讲解,大家按照我这个过程一步一步来,分别为测试包安装-》虚拟机连接电脑-》启动appiumdesktop-》建立回话-》运行脚本-》脚本运行成功
3.1模拟器测试安装包安装
1. 我这里安装的测试包为公司正在测试的一款软件‘飞凡’, ,将安装包直接拖拽到cmd后enter,可以看到模拟器安装包已经开始安装,安装成功如下图所示(如果不支持拖拽的话,在cmd中输入adb install app所在目录,如输入adb install D:\chrome下载\com.wanda.app.wanhui_422000000.apk 也可以安装成功)
安装成功3.2 模拟器adb命令连接到电脑
打开夜神( )虚拟机,在cmd里输入命令adb connect 127.0.0.1:62001(如果环境变量没有配置ANDROID_HOME,cmd需进入Android sdk下的platform-tools目录下再运行adb connect 127.0.0.1:62001),出现connected to 127.0.0.1:62001提示说明连接成功。
设备连接3.3 启动appiumdesktop,建立session回话,确定capability
1. 点击图标 启动appiumdesktop,启动界面如下图所示
启动界面2.点击start server按钮,出现server运行成功界面
运行界面3.点击右上方搜索图标,在这里很关键,有几个需要我们确定的capbility,下图是我已经确定好的
capbility4.那么如何确定这几个关键因素呢:
Devicename(设备名称)
appWaitActivity(测试包的首个等待页)
appPackage(测试包的首个等待页)
platformName(测试平台名称)
platformVersion(测试平台版本号)
Devicename 虚拟机连接电脑成功后,在cmd里输入adb devices,device前的就是设备名称,因为是虚拟机,所以出现的是ip地址端口号形式,如果要是真机的话就不是这样的
虚拟机连接设备appPackage、appWaitActivity这两项我试用了很多方法,比如adb logcat命令,但我发现查找功能项appWaitActivity的时候查找不到,最后推荐大家使用我下面的方法:aapt
1.cmd 进入 Android SDK下aapt目录:我这里目录是D:\software\android-sdk-windows\build-tools\27.0.2
2.运行aapt工具:aapt dump badging 路径+名称,如aapt dump badging d:\com.wanda.app.wanhui_422000000.apk,
包名称就是:com.wanda.app.wanhui,在Android系统中是判断一个App的唯一标识,这里要注意以这里显示的为准,不要直接写上面安装包的名称如com.wanda.app.wanhui_422000000,否则会报错
包名称页面下拉找到appWaitActivity为:com.feifan.o2o.business.launch.LauncherActivity
appWaitActivity3.platformName就是使用哪种移动平台,我这里就填Android
4. platformVersion是测试平台版本号:虚拟机可以进入设置->关于查看,我这里是4.4.2
platformVersionOk,到这里我们把确定好的capbility都添加到appium中,点击右下方的保存按钮,appium的虚拟环境设置工作就完成了,接下来我们在eclipese里运行脚本
3.4 eclipse运行脚本,调用appiumdestop中session回话
这里我把建立项目的过程说一下:
1. 在eclipse里运行脚本前需要导入python项目,参考配置网址:https://www.cnblogs.com/Bonker/p/3584707.html,如果觉得配置麻烦,用python自带的Idle运行也可以,简单方便
2. 将下面的代码拷贝eclipse模块中,点击运行按钮,如果一切正常,就会看到夜神虚拟机中飞凡app成功启动运行
@author: Administrator
'''
#coding=utf-8
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.wanda.app.wanhui'
desired_caps['appActivity'] = 'com.feifan.o2o.business.launch.LauncherActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_name('黄商超市八里商贸中心店').click()
driver.quit()
4.在运行过程中会遇到的错误
实际上,刚刚接触自动化环境,搭建完成后都会遇到各种错误,下面举例说明一下
4.1.运行代码后 appium desktop 启动,提示“could not find a connected Android device”,这个问题困扰了我好久,明明知道是没有找到设备,但就是想不明白为什么找不到,这时我就开始各种怀疑人生,难道是我环境配错了,进行了各种试错过程,后来想了想adb 经常重启,就尝试着在运行代码后,在cmd里重新执行adb connect 127.0.0.1:62001命令,ok 问题解决,当用真机的时候就不会有这样的问题
错误14.2问题1 解决后出现如下提示error running command: Error: Unable to find an active device or emulator with OS 4.4.4.. The following are available: 127.0.0.1:7555 (4.4.4)
错误2原来4.4.4.,后面多了一个” .”,这种错误同志们不要尝试犯这种低级错误
3. 继续运行一遍代码,这回提示错误“activity used to start app doesn’t exist or cannot be launched!make sure…”,提示的意思是启动app时没有找到activity,可以确定是我们的launchable activity写错啦,重新查一遍launchable activity具体是什么就好了,回到上文aapt命令翻阅
错误34.eclipse运行程序,报错“name '黄商超市八里商贸中心店' is not defined”
错误4查看上面的代码发现()里的内容没有加‘’导致,添加即可
综上,其实在eclipse运行代码后,夜神虚拟机中指定app启动成功就说明你的环境已经配置成功了,接下来就可以进行自动化脚本编写啦
网友评论