Appium+Python 实例
一、启动淘宝APP
在这里主要给大家推荐一个sdk自带的实用工具aapt。aapt 即 Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。
(1) 第一步:下载 aapt, 在 android-sdk 里面 双 击 SDK-manager, 下载 buidl-tools。
勾选 build-tools,随便选一个版本,我这里选的是 24 的版本:
下载完成后,在D:\androidsdk\android-sdk-windows\build-tools\24.0.0目录下找到aapt.exe,将这个路径设置环境变量,添加到 path 下:
打开 cmd,输入 aapt 出现如下界面,说明环境 OK 了:
(2) 第二步:获取 apk 包名,分以下三步:
将准备测试的 APK 放到 D 盘某个目录,如 D:\test
打开 cmd,输入指令 aapt dump badging D:\test\xxx.apk(APK 的全名,如手机淘宝.apk)
以手机淘宝.apk 为例,如下图:
这里就可以看到 apk 的包名:com.taobao.taobao,你也可以直接把 apk 放在桌面上,输入指令后拖到 cmd 框。
(3) 第三步:获取 launcherActivity,接着上一步操作,cmd 屏幕拖到中间 l 找到 auncherActivity ,这里可以看到, 淘宝的 launcherActivity 值为com.taobao.tao.welcome.Welcome。
(4) 第四步:写自动化脚本。
platformName:这里是 android 的 apk
deviceName:手机设备名称,通过 adb devices 查看
platformVersion:android 系统的版本号
appPackage:apk 包名
appActivity:apk 的 launcherActivity
# coding=utf-8
from appium import webdriverd esired_caps = {
'platformName': 'Android',
'deviceName': '30d4e606',
'platformVersion': '5.0',
# apk 包名
'appPackage': 'com.taobao.taobao',
# apk 的 launcherActivity
'appActivity':'com.taobao.tao.welcome.Welcome'
}
driver = webdriver.Remote (http://127.0.0.1:4723/wd/hub, desired_caps)
127.0.0.1 这个地址是怎么来的呢?如下图:
(5)第五步:运行 appium,启动 appium,右上角点三角形按钮,变成正方形,就是启动状态。
确认手机连上电脑:
在 pycharm 运行脚本,随后在手机上会弹出安装下面两个软件的提示,安装后,桌面上多两个图标。那么恭喜你启动成功!
二、淘宝APP 元素定位实例
(1) 第一步:连接手机,需要确保以下三点:
cmd 打开输入 adb devices,确认手机已连上
打开手机淘宝页面,让屏幕处于点亮状态
点左上角安卓机器人按钮 Devices Screenshot 按钮刷新页面
(2) 第二步:定位元素移动鼠标到需要定位的元素上,如搜索输入框:
右下角可以看到元素对应的属性
text:搭配新宠不能缺
resource-id:com.taobao.taobao:id/home_searchedit
class:android.widget.EditText
(3) 点搜索框:
(4) 前面启动 app 后,休眠五秒,等待页面加载完成,通过 id 来定位到搜索框, 然后点击,代码实现如下:
coding=utf-8
from appium import webdriver import time
desired_caps = {
‘platformName’: ‘Android’,
‘deviceName’: ‘30d4e606’,
‘platformVersion’: ‘5.0’, ‘appPackage’: ‘com.taobao.taobao’, ‘appActivity’:‘com.taobao.tao.welcome.Welcome’,
}
driver = webdriver.Remote (http://127.0.0.1:4723/wd/hub, desired_caps) # 休眠五秒等待页面加载完成
time.sleep(5)
driver.find_element_by_id(“com.taobao.taobao:id/home_searchedit”)
.click()
appium 的 webdriver 提供了 11 种元素定位方法,在 selenium 的基础上扩展了三个,可以在 pycharm 里面输入 driver.find_element_by 然后会自动匹配出来。
三、APP 登陆实例
下面来写一个用户名密码登陆的自动化脚本:
#coding:utf-8 import time import os
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
PATH=lambda p:os.path.abspath(os.path.join(os.path.dirname( file ),p))
#初始化desired_caps={}
#使用哪种移动平台desired_caps[‘platformName’]=‘Android’ #Android 版本desired_caps[‘platformVersion’]=‘6.0.1’ #启动哪种设备,是真机还是模拟器?
desired_caps[‘deviceName’]=‘Galaxy S6 edge’ #App 的绝对路径desired_caps[‘app’]=PATH(‘D:\kuyu.apk’)
driver=webdriver.Remote(http://127.0.0.1:4723/wd/hub,desired_caps)#初始化
desired_caps[‘unicodeKeyboard’]=True,#使用unicodeKeyboard 的编码方式来发送字符串
desired_caps[‘resetKeyboard’]=True#将键盘给隐藏起来WebDriverWait(driver,20).until(lambda the_driver: the_driver.find_element_by_id(“com.kuyu:id/tv_login”).is_displayed()) driver.find_element_by_id(“com.kuyu:id/tv_login”).click()
#输入用户名driver.find_element_by_id(“com.kuyu:id/et_email”).send_keys("******") #输入密码driver.find_element_by_id(“com.kuyu:id/et_pwd”).send_keys("******")
#点击登录driver.find_element_by_id(“com.kuyu:id/tv_login”).click()
#这里加了一个等待,判断指定的元素出现则为登录成功(等待方法不懂没有关系, 以后会再讲解如何设置等待)
WebDriverWait(driver,20).until(lambda the_driver: the_driver.find_element_by_id(“com.kuyu:id/include_study_iv_add”).is_di splayed())
print(u"登录成功") driver.quit()
好啦,今天我们从Appium案例中走了一遍流程,熟悉了一遍之前我们学过的知识,多实战几次会愈加的熟练。到这期为止我们已经从头到尾的学习+复习了一遍Appium,随着移动互联网与App发展的越来越好,App测试也成为了必不可少的一个重要工作与岗位,当你想做好测试,做一名好的测试猿甚至是高级测试工程师的话,可不只是目前所学这么一点点内容而已哦,所以加油吧!
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。