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测试也成为了必不可少的一个重要工作与岗位,当你想做好测试,做一名好的测试猿甚至是高级测试工程师的话,可不只是目前所学这么一点点内容而已哦,所以加油吧!
最后我也整理了一些软件测试学习资料,对于学软件测试的小伙伴来说应该会很有帮助。有需要资料的朋友可以关注公众号:软件测试小dao,免费获取!包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
|