appium+Python真机运行
一,打开手机的USB调试模式
二,连接手机到电脑
将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示:
如果有输出,就表示连接成功。
三,启动Appium服务
打开appium-desktop
四,测试脚本的编写及运行
真机运行的测试脚本与模拟器上几乎是相同的,就是有些儿配置不太一样。具体脚本demo如下demo.py:
import time #导入timefrom appium import webdriver #导入appiumdesired_caps = {}desired_caps['platformName'] = 'Android' #测试的手机是Androiddesired_caps['deviceName'] = '127.0.0.1:7555' #设备名称desired_caps['platforVersion'] = '6.0.1' #设备系统版本desired_caps['app'] = r'C:\Users\Administrator\Desktop\comqinheispeak_3.4.3.12202a.apk' #app路径desired_caps['appPackage'] = 'com.qinhe.ispeak' #app包名desired_caps['appActivity'] = 'com.qinhe.ispeak.AppStartActivity'
desired_caps["unicodeKeyboard"] = "True"desired_caps["resetKeyboard"] = "True"desired_caps['noReset'] = 'True'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #启动apptime.sleep(5) #启动app时,需要一定时间进入引导页,所以必须设置等待时间,不然下面会一直报错定位不到元素
注:在测试用例运行过程中,正常情况下手机会自动安装Settings和Unlock,有些手机有兼容性问题,Settings和Unlock程序打不开,所以每次运行脚本都会提示安装,按提示允许安装就可以。
Appium的Desired Capabilities是扩展了webdriver的Desired Capabilities的,下面的一些通用配置是需要指定的:
[if !supportLists]· [endif]automationName:使用哪种自动化引擎。appium(默认)还是Selendroid?
[if !supportLists]· [endif]platformName:使用哪种移动平台。iOS, Android, orFirefoxOS?
[if !supportLists]· [endif]deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc...
[if !supportLists]· [endif]app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。
[if !supportLists]· [endif]browserName:移动浏览器的名称。比如Safari' for iOS and 'Chrome', 'Chromium', or 'Browser' for Android;与app属性互斥。
[if !supportLists]· [endif]udid:物理机的id。比如1ae203187fc012g。
下面这些属性是android平台特定的:
[if !supportLists]· [endif]appActivity:待测试的app的Activity名字。比如MainActivity, .Settings。注意,原生app的话要在activity前加个"."。
[if !supportLists]· [endif]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名。
运行python