Appium学习之驱动真机运行
一、Appium工具的简单原理
Appium工具可以分为:客户端(appium-client)、服务端(appium-server)和移动设备端(模拟器或者真机)。客户端支持多语言,如:python-client、java-client、ruby-client等。服务端支持多平台,如:Windows、Mac。最后Appium支持Android和iOS系统。原理图放一下虫师的:

二、Appium工具的安装
想要将Appium跑起来,那么需要安装客户端、服务端的相关软件。客户端的根据自己需要安装不同的语言,如:Python、Java、Ruby等。服务端可以安装:appium或者appium-desktop。这里我使用:Python-client + appium-desktop的方式进行安装。
我的运行环境:【操作系统:win10;移动设备:真机红米note2;已安装JDK;已安装python3.7】
2.1 安装客户端,appium-python(使用pip的方式安装)
使用win+r 打开运行,输入cmd回车打开命令提示符页面。输入下面的命令自行安装:
pip install appium-python-client
2.2 安装服务端,appium-desktop
下载链接:https://github.com/appium/appium-desktop/releases 我下载了exe版直接下一步进行安装。
如果想要安装appium的,可以参考此链接进行安装:
http://www.testclass.net/appium_base/appium-base-server
三、服务端连接移动设备
准备真机一台:Redmi Note 2,可传输数据线一条(如果打开了USB调试连接电脑没有反应只是显示充电,那这条数据线极可能是不能传输数据的)
3.1 打开USB调试
设置——我的设备——全部参数——对着“MIUI版本”那一项点7次,会提示开发者选项打开。然后回到 设置——更多设置——开发者选项,将“开启开发者选项”、“USB调试”的开关设置为开启状态。

3.2 安装安卓SDK(可以对手机进行连接操作,包括获取id,设备名,包名等)
参考教程:
http://www.testclass.net/appium_base/appium-base-sdk
https://www.cnblogs.com/sheseido/p/9368761.html
1、下载安卓SDK安装包,地址:http://tools.android-studio.org/index.php/sdk
2、安装完成或者解压完成后,进入目录中打开:SDK Manager.exe
3、我们使用真机测试,不需要安装模拟器镜像,暂时只需要安装Tools和Platform-tools,以后有需要可以继续安装

3.3 获取手机的设备信息
1、打开命令提示符,定位到platform-tools的目录下,输入:adb devices 命令查看连接的手机。

2、在设置——我的设备——全部参数中,记下“Android版本”的版本号。
3、清空后台的所有程序,打开计算器,然后打开命令提示符,定位到adb所在的目录路径,输入命令:adb shell 回车,再输入:dumpsys window | grep "mCurrentFocus"。记下com.miui.calculator和com.miui.calculator.cal.CalculatorActivity

4、启动appium-desktop,点击右上角的放大镜,在弹出的页面中输入前面3步所获取到的值,然后点击Start Session即可连接,如图:



PS:如果出现如下:An unknown server-side error occurred while processing the command. Original error: pkg: /data/local/tmp/appium_cache/728413456b8xxxxxxxxxxxxd6bd577ca6418.apk Failure [INSTALL_FAILED_USER_RESTRICTED]的报错,请在开发者选项中打开USB安装、USB调试(安全设置)的开关。开关打开后,会安装一个appium setting的APP,安装完即可进行连接。

四、使用客户端发送指令驱动真机运行
1、编写客户端代码(python),点击运行即可驱动真机进行计算
from appium import webdriver # 导入appium包
import time # 连接手机app初始化的一些信息
desc = {}
desc['deviceName']='PNMxxxxxxxxxUQK'# 手机设备名称,adb devices
desc['platformVersion']='5.0.2'# 手机版本,在手机中:设置--关于手机
desc['platformName']='Android' # 手机类型,ios或android
desc['appPackage']='com.miui.calculator'#包名
desc['appActivity']='com.miui.calculator.cal.CalculatorActivity'#启动入口 driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#访问服务接口,并启动手机app time.sleep(20)
driver.find_element_by_id('com.miui.calculator:id/btn_6_s').click()
time.sleep(2)
driver.find_element_by_id('com.miui.calculator:id/btn_plus_s').click()
driver.find_element_by_id('com.miui.calculator:id/btn_2_s').click()
driver.find_element_by_id('com.miui.calculator:id/btn_equal_s').click() driver.quit()
PS:如果发现appium-desktop连接正常,且运行代码没有错误,但是真机却没有进行模拟运行,请检查开发者选项中的“USB调试(安全设置)”和“允许模拟位置” 是否处于开启状态,关闭状态将不能驱动真机运行。
Appium学习之驱动真机运行的更多相关文章
- 第四章 Appium真机运行测试用例讲解
-----手机自动化之Appium 手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在第二章我们讲到了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例 ...
- 如何在 iOS 真机运行 Appium
使用 gui 启动的 appium 1.2.2 也会有这个问题,所以你要把 deviceconsole 复制到 /Applications/Appium.app/Contents/Resources/ ...
- 二.Android手机自动化测试真机运行
手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在搞定了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例.期间也遇到了不少问题,不过最终还是搞定了,现 ...
- 使用Appium进行iOS的真机自动化测试
windows不支持appium连接ios,只适用于mac 使用Appium进行iOS的真机自动化测试 安装类库 Homebrew 如果没有安装过Homebrew,先安装[ homebrew ] np ...
- ReactNative真机运行指南
ReactNative真机运行指南 注意在iOS设备上运行React Native应用需要一个Apple Developer account并且把你的设备注册为测试设备.本向导只包含React Nat ...
- appium通过WiFi连接真机进行测试
http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试 2015-07-24 19:43:07CSDN ...
- ionic ios项目真机运行-不用开发者账号
ionic ios项目真机运行-不用开发者账号 1. 添加ios平台 ionic platform add ios 2.使用XCODE打开项目 3.使用APPID登录XCODE 打开XCODE账号登录 ...
- 【转】NO.3、python+appium+ios,遍历真机元素,得到webview
pyhton+appium+iOS,遍历真机webview.是遍历真机的webview,遍历模拟器的webview请另寻方法. 1.mac上安装ios_webkit_debug_proxy 命令:br ...
- 【Android Studio安装部署系列】七、真机运行项目
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下真机运行项目的操作步骤. 手机连接电脑 将手机通过数据线连接到电脑上,此时电脑会自动下载安装驱动程序.如果没有安装上的话, ...
随机推荐
- CentOS之—双网卡双IP双网关配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/77487639 一.配置讲解 1.配置DNS 修改对应网卡的DNS的配置文件 # v ...
- 极客 Play 玩 Terminal——GitHub 热点速览 Vol.40
作者:HelloGitHub-小鱼干 多少人以为暗黑的终端便是一名程序员的工作台,其实上,终端可以不只是一个输入 command 的界面,也可以是本周特推 kb 一样,面向极客的极简命令行知识库管理器 ...
- 用pChart生成雷达图图片
需求 :由于工作需要,需要在一张背景图上添加这一张雷达图,之后图片可以在微信中长按保存.所以说我必须生成一张带有雷达图的图片第一反应是用百度echars雷达图做动态显示,之后截图.考虑到工作量和效率, ...
- Spring中的一些面试题
谈谈你对spring IOC和DI的理解,它们有什么区别? IoC [Inverse of Control] 控制反转的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...
- MeteoInfoLab脚本示例:计算垂直螺旋度
尝试编写MeteoInfoLab脚本计算垂直螺旋度,结果未经验证. 脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uwnd ...
- 算出cron表达式接下来几次执行时间
目录 1.使用cron库 2.总结 1.使用cron库 需要使用的go库:[点击跳转]. 具体使用方法可以参照例子使用,下面主要实现计算接下来几次cron表达式执行时间. package main i ...
- nc发送数据到端口
head -n 1 /etc/passwd | nc localhost 9200
- k8s- centos7.8搭建
vmware16.0 centos7.8 1. 使用vmware安装 centos环境 cpu4个 内存4G 网络nat模式 2.配置网络 vim /etc/sysconfig/network-sc ...
- 通过SQL自动添加流水号
通过SQL自动添加流水号 项目中往往有一些单据流水号或者流程流水号是希望通过新增一条记录后自动产生一个编号的,比如新增一条流程就自动根据当前日期自动添加该流程的流程流水号,下面介绍两种不同类型流水号通 ...
- PHPStorm注释缩进问题
以下是让强迫症很难受的注释格式 以下几步即可解决强迫症的烦恼 1.点击File 2.点击setting 3.按照以下几步走 4.按照以下几步走 5.最后效果如下