重点关注第五步实战,这个地方只要可以成功启动就可以,目前不用过多关注具体细节;
aapt部分可以帮助获取到包的信息,最后有使用方法
还有个简单的方法可以获取到'appPackage'和'appActivity',adb连接上设备后打开应用,使用命令:adb shell dumpsys activity top|findstr ACTIVITY(下图)
top代表获取最顶层页面,“/”前面是'appPackage',后面是'appActivity',注意前面的“."不能省略




android电量获取 android获取手机电量_Android


def setUp(self):
        desired_caps={}
        #在三个配的是手机
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '8.1.0'#这里需要改成对应设备版本
        desired_caps['deviceName'] = 'Android Emulator'
        #下面俩配的是app的信息,aapt可以查,下面有获取方式
        desired_caps['appPackage'] ='com.guokr.mentor'
        desired_caps['appActivity'] = '.activity.MainActivity'
        #下面俩配的是键盘,不用键盘可以不配,用完需要手动恢复下手机键盘,appium不会自动恢复
        desired_caps['unicodeKeyboard']='true'#使用Unicode键盘
        desired_caps['resetKeyboard']='true'#重置当前输入法
        # APP是否重新设置,没有这个每次都会重新设置,一定要有
        desired["noReset"] = "true"
        #下面是远程连接设备
        self.driver=webdriver.Remote("http://localhost:4723/wd/hub",desired_caps)


desired Capabilities

参考:appium-DesiredCapability详解与实战 - 会跑的熊 - 博客园

Desired Capabilities 是由 keys 和 values 组成的 JSON 对象。

DesiredCapability对启动app至关重要,是启动app前的准备工作。如果配置错误,app不会成功启动。

DesiredCapability有appium公共健值对、Android专有和IOS专有三部分。

appium服务关键字和android专有关键字来源于github

一、appium关键字

  appium关键字是appium的一些公共关键字,主要是针对测试平台的设置以及启动前。比如选择ios还是android,测试前要不要安装app等。


android电量获取 android获取手机电量_android电量获取_02


android电量获取 android获取手机电量_adb命令查看手机电量_03


二、Android专有关键字

  android专有关键字是android测试时可以选择配置的一些键值对。所有配置只针对android手机有效。


android电量获取 android获取手机电量_adb命令查看手机电量_04


下表中需要一定的android知识,avd是android virtual device。


android电量获取 android获取手机电量_adb命令查看手机电量_05


下表几个与网络和浏览器测试,混合app测试有关。


android电量获取 android获取手机电量_android_06


下表中操作与手机设置有关


android电量获取 android获取手机电量_Android_07


三、android app测试重要关键字

重要关键字的填写在进行测试时可以更准确的定位测试环境,使测试结果更加精准。


android电量获取 android获取手机电量_android电量获取_08


四、iOS特有


android电量获取 android获取手机电量_android电量获取_09


android电量获取 android获取手机电量_android_10


五、源码键值对实战

  键值对就是一个字典,key值写上面列表中的内容,值写对应的信息。变量名caps可以自己取,不用一定写他。执行下列代码可以启动testapp。


#! /usr/bin/env python
#coding=utf-8

from appium import webdriver

caps = {
        'platformName':'Android',
        'platformVersion':'4.2',
        'deviceName':'Android Emulator',
        'unicodeKeyboard':True,
        'resetKeyboard':True,
        'app':'D:/Appium/jishiben.apk',
        'appPackage':'com.smartisan.notes',
        'appActivity':'com.smartisan.notes.NewNotesActivity'
        ''
        }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)

或者写成:
        desired={}
        desired['platformName'] = 'Android'
        # 改成自己的安卓设备版本号
        desired['platformVersion'] = '8.1.0'
        desired['deviceName'] = 'Android Emulator'
        desired['appPackage'] ='com.guokr.mentor'
        desired['appActivity'] = '.activity.MainActivity'
        desired["noReset"]="true"

        self.driver=webdriver.Remote("http://localhost:4723/wd/hub",desired)


  与key相关的几个是打包apk时需要添加的信息。这里添加是为了给apk重签名。重签名后的apk更方便测试


android电量获取 android获取手机电量_android_11


aapt的使用

aapt: Android Asset Packaging Tool 就是android的一个资源打包工具。

路径:在sdk的build-tools下,所以一般配置好sdk就可以使用该工具。或者单独下载aapt这个工具,在环境变量path中添加aapt的路径。

cmd中输入‘aapt v’:查看aapt版本号,确认aapt是否配置好。

主要应用:

aapt l :简单的罗列压缩文件中每一项的内容

aapt l -v XXX.apk(apk路径):列表方式详细标识出压缩文件中的每一项和很多参数

    Length 原始文件参数

    Date 日期

    Time 时间

    Name 名称

    Method压缩方法,Deflate及Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式

    Ratio 压缩率

    Size 压缩省掉的大小

    CRC-32 循环冗余校验 这个计算是特定的算法的

    offset:zipfile中偏移量的意思

aapt l -a:详细输出压缩文件中所有目录的内容 

aapt dump strings :打印apk中所有string资源表

(重点)aapt dump badging aak路径.apk:查看apk中的配置信息

package:name ='应用包的名称'

Launchable-activity:name ='入口页面'


android电量获取 android获取手机电量_Android_12