appium+Python真机运行测试demo的方法

http://www.cnblogs.com/Nefeltari/p/5603163.html


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:使用哪种移动平台。iOSAndroid, orFirefoxOS?
  • deviceName:启动哪种设备,是真机还是模拟器?iPhone SimulatoriPad SimulatoriPhone Retina 4-inchAndroid EmulatorGalaxy 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。

 

 获取Android app的appActivity

网上有写很多方法https://testerhome.com/topics/1030,评论区还有补充

我用的是把apk后缀改为zip格式,打开压缩包后再打开AndroidManifest.xml文件。找到manifest和activity地方,就是包名跟activity名。 

 

 






### Appium 教程入门与使用指南 #### 为什么选择AppiumAppium作为一种开源工具,支持多种编程语言编写自动化测试脚本,并能够在iOS和Android平台上运行这些测试。这使得开发者能够在一个统一框架下完成跨平台应用的自动化测试工作[^1]。 #### 如何搭建Appium开发环境? 为了顺利开展基于Appium的应用程序界面(UI)自动化测试,在开始之前需先配置好必要的软件环境。具体步骤包括但不限于安装Node.js、Java Development Kit (JDK),以及设置Android SDK路径等操作;对于iOS设备,则还需要额外准备Xcode及相关依赖项。整个过程被描述得非常详尽,确保每位初学者都能顺利完成初始化配置。 #### 实践中的Demo展示 通过具体的案例演示可以帮助理解理论知识的实际应用场景。例如创建一个简单的移动应用程序交互场景作为练习对象,利用Python或其他受支持的语言编写的Selenium WebDriver API接口调用Appium服务端口发送指令给目标模拟器/真机执行相应动作,从而验证预期行为是否达成。 #### 移动端UI自动化测试原理 借助于WebDriver协议,Appium可以像浏览器一样向移动操作系统发出HTTP请求以驱动APP内的控件事件触发。这意味着几乎所有的可视组件都可以被定位并操控——无论是点击按钮还是输入文字框内容填充皆可通过代码实现自动化处理流程。值得注意的是由于不同版本间可能存在兼容性差异因此建议定期更新至最新稳定发行版来获得更好的体验效果。 #### 学习资源推荐 除了官方文档外还有许多优质的第三方资料可供参考学习,如视频课程网站上有关于从零基础到精通级别的系列讲座,它们往往包含了更多实战技巧分享有助于加速成长进程。此外关于ADB命令行工具的基础运用也是不可忽视的一部分因为它能极大地方便日常调试工作的效率提升[^2]。 ```bash adb devices # 列出已连接的设备列表 ``` #### Android系统特性简介 鉴于安卓系统的特殊架构特点即其核心部分构建于Linux之上,故而熟悉一些基本shell语法将有利于更高效地管理文件系统或者获取日志信息等内容。比如`ls`用于浏览远程终端下的目录结构,这对于排查问题时收集证据有着重要意义[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值