appium+Python真机运行测试demo的方法
一, 打开手机的USB调试模式
二, 连接手机到电脑
将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示:
如果有输出,就表示连接成功。
三, 启动Appium服务
方法一:cmd命令行启动
根据查到的UDID启动appium服务,运行命令:
#>appium -a 127.0.0.1 -p 4723 –U 6207febc --no-reset
-U 参数后面跟的一串字符就是手机的UDID,这个是通过第二步查到的。
当程序输出如上图信息的时候,表示appium启动成功,此时便可以运行测试脚本了。
方法二:appium界面启动
四, 测试脚本的编写及运行
真机运行的测试脚本与模拟器上几乎是相同的,就是有些儿配置不太一样。具体脚本demo如下demo.py:
#! /usr/bin/env python
#coding=utf-8
import os
import time
import unittest
from selenium import webdriver
from lib2to3.pgen2.driver import Driver
from lib2to3.tests.support import driver
PATH=lambda p:os.path.abspath(os.path.join(os.path.dirname(__file__),p))
desired_caps = {}
desired_caps['platformName'] = 'Android' #设备系统
desired_caps['platformVersion'] = '5.1.2' #设备系统版本
desired_caps['deviceName'] = 'Lenovo P1c72' #设备名称
desired_caps['app'] = PATH('C:\\Users\\LENOVO\\Desktop\\StarZone_V2.0.0.apk')
#desired_caps['appPackage'] = 'com.xiangchao.starspace'
#desired_caps['appActivity'] = 'com.xiangchao.starspace.activity.SplashActivity'
#如果设置的是app在电脑上的路径,则不需要配appPackage和appActivity,同理反之
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #启动app
time.sleep(5) #启动app时,需要一定时间进入引导页,所以必须设置等待时间,不然下面会一直报错定位不到元素
driver.find_element_by_id('com.xiangchao.starspace:id/skip').click()
driver.quit()
另开一个cmd窗口,运行测试脚本(python demo.py)即可。此时服务端就会有输出,程序在手机上运行。
注:在测试用例运行过程中,正常情况下手机会自动安装Settings和Unlock,有些手机有兼容性问题,Settings和Unlock程序打不开,所以每次运行脚本都会提示安装,按提示允许安装就可以。
Appium的Desired Capabilities是扩展了webdriver的Desired Capabilities的,下面的一些通用配置是需要指定的:
- automationName:使用哪种自动化引擎。appium(默认)还是Selendroid?
- platformName:使用哪种移动平台。
iOS
,Android
, orFirefoxOS?
- deviceName:启动哪种设备,是真机还是模拟器?
iPhone Simulator
,iPad Simulator
,iPhone Retina 4-inch
,Android Emulator
,Galaxy S4
, etc... - app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。
- browserName:移动浏览器的名称。比如Safari' for iOS and 'Chrome', 'Chromium', or 'Browser' for Android;与app属性互斥。
- udid:物理机的id。比如1ae203187fc012g。
下面这些属性是android平台特定的:
- appActivity:待测试的app的Activity名字。比如MainActivity, .Settings。注意,原生app的话要在activity前加个"."。
- appPackage:待测试的app的java package。比如com.example.android.myApp, com.android.settings。
http://www.cnblogs.com/Nefeltari/p/5603163.html
获取Android app的appActivity
网上有写很多方法https://testerhome.com/topics/1030,评论区还有补充
我用的是把apk后缀改为zip格式,打开压缩包后再打开AndroidManifest.xml文件。找到manifest和activity地方,就是包名跟activity名。
相关推荐
Windows系统远程桌面设置(附win11家庭版开启组策略功能及远程桌面)
一个兼容vue 2.x-3.x 的vue-seamless-scroll区域滚动插件
我的目标是打造一个平台,让人们能够轻松地探索和学习那些对世界产生深远影响的杰出人物。
【信号检测】基于matlab自适应滤波法微弱信号检测【Matlab仿真 2308期】.zip
CAD2024案例文件.zip
Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh NetworkManager-adsl-1.18.4-3.el7.x86_64.rpm
1. 云主机安全防护的目的: 目前的病毒及攻击威胁都是以获取或者破坏数据为目的,主机是抗击这些威胁的最后一道防线、主机安全防护的目的是防止网络攻击和数据泄露。 2. 云主机安全防护方式:系统安全、文件安全、关闭不需要的服务和端口、安装网络杀毒软件、安装和设置防火墙、定期监测系统日志、定期对云主机系统进行备份。 3. 安全组:安全组规则由通过源IP、协议、目的端口、策略(允许或拒绝) 和优先级组成,在出方向上的数据报文全部放行,入方向访问受限。 了解云主机安全防护的原因与目的及云主机日常防护的方式,通过操作掌握安全组的使用。
腾讯云产品选型与架构设计教程.docx
【组合导航】基于matlab强跟踪滤波IMU+GNSS组合导航【Matlab仿真 3865期】.zip
腾讯云:云函数SCF开发与部署教程.docx
腾讯云:云安全基础与实践.docx
基于车载相机的深度感知算法研究
CSDN Matlab武动乾坤上传的资料均有对应的代码,代码均可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh abrt-addon-python-2.1.11-57.el7.centos.x86_64.rpm
CSDN Matlab武动乾坤上传的资料均有对应的代码,代码均可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
智能化健康管理-java-基于springBoot面向社区的智能化健康管理系统研究设计与实现
基于Java+SpringBoot+Vue的超市货品信息管理系统答辩PPT.pptx
【信道化】基于matlab 16通道DFT多相滤波器组信道化【Matlab仿真 4526期】.zip
用flash做的停表演示
交换机连接云平台、麒麟系统远程访问云平台虚拟Windows系统