软件测试 | App测试——Appium实战总结,淘宝App测试项目案例

Appium+Python 实例

一、启动淘宝APP

在这里主要给大家推荐一个sdk自带的实用工具aapt。aapt 即 Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。

(1) 第一步:下载 aapt, 在 android-sdk 里面 双 击 SDK-manager, 下载 buidl-tools。软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第1张图片
勾选 build-tools,随便选一个版本,我这里选的是 24 的版本:软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第2张图片
下载完成后,在D:\androidsdk\android-sdk-windows\build-tools\24.0.0目录下找到aapt.exe,将这个路径设置环境变量,添加到 path 下:

软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第3张图片
打开 cmd,输入 aapt 出现如下界面,说明环境 OK 了: 软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第4张图片
(2) 第二步:获取 apk 包名,分以下三步:

将准备测试的 APK 放到 D 盘某个目录,如 D:\test
打开 cmd,输入指令 aapt dump badging D:\test\xxx.apk(APK 的全名,如手机淘宝.apk)
以手机淘宝.apk 为例,如下图:
软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第5张图片
这里就可以看到 apk 的包名:com.taobao.taobao,你也可以直接把 apk 放在桌面上,输入指令后拖到 cmd 框。

(3) 第三步:获取 launcherActivity,接着上一步操作,cmd 屏幕拖到中间 l 找到 auncherActivity ,这里可以看到, 淘宝的 launcherActivity 值为com.taobao.tao.welcome.Welcome。

软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第6张图片
(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 这个地址是怎么来的呢?如下图:

软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第7张图片
(5)第五步:运行 appium,启动 appium,右上角点三角形按钮,变成正方形,就是启动状态。软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第8张图片
确认手机连上电脑:软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第9张图片
在 pycharm 运行脚本,随后在手机上会弹出安装下面两个软件的提示,安装后,桌面上多两个图标。那么恭喜你启动成功!软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第10张图片
二、淘宝APP 元素定位实例

(1) 第一步:连接手机,需要确保以下三点:

cmd 打开输入 adb devices,确认手机已连上
打开手机淘宝页面,让屏幕处于点亮状态
点左上角安卓机器人按钮 Devices Screenshot 按钮刷新页面
软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第11张图片
(2) 第二步:定位元素移动鼠标到需要定位的元素上,如搜索输入框:

软件测试 | App测试——Appium实战总结,淘宝App测试项目案例_第12张图片
右下角可以看到元素对应的属性

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测试——Appium实战总结,淘宝App测试项目案例_第13张图片
三、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软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

你可能感兴趣的:(软件测试,程序员,IT,测试工程师,appium)