软件测试实训|使用Appium测试Android应用程序(附代码+视频)

本项目主要练习使用Appium完成对一个Android上的APP进行测试。

01

项目目的

1. 掌握Appium测试环境的安装和配置。

2. 熟练应用常见的ADB命令功能及用法。

3. 熟练使用Android SDK及Android模拟器。

02

项目要求

1. 安装appium环境。

2. 编写代码在应用上进行操作,也可对Android原生应用进行操作,例如点击button,输入字符等。

3. 添加断言。

4. 退出driver driver.quit。

5. 运行程序看是否执行成功。

6. 将上述关键步骤截图并加以说明。

03

项目过程

1

安装 appium 桌面版客户端

打开github地址:

https://github.com/appium/appium-desktop/releases

可以看到最新版本的appium有 WIndows版本、Linux版本和Mac版本,可以点击Appium-windows-1.21.0.exe进行下载安装,如图1所示。

图1 appium下载

2

安装 Appium-Python-Client

在终端中输入pip install Appium-Python-Client,安装Appium-Python-Client(版本>=0.29),如图2所示。

图2 Appium-Python-Client安装

3

安装 selenium

在终端中输入pip install selenium,安装selenium(版本>=3.141.0)。

4

安装jdk

下载操作系统对应版本jdk,安装jdk1.8任意版本并配置环境变量。

5

安装Android SDK

下载Android SDK,并配置环境变量。

ANDROID_HOME—sdk的存放目录 如d:/sdk

在用户变量PATH后面加上变量值;%ANDROID_HOME%\platform-tools;点击确认即可

配置完成后在cmd命令行输入adb,若不报错则说明配置正确。

6

安装 夜神模拟器

打开地址:https://www.yeshen.com/

下载并安装nox_setup_v7.0.1.1_full.exe。

7

替换

将Android SDK中 platform-tools路径下的adb.exe 复制到模拟器安装路径下的bin目录替换原有的adb.exe,删除原有的nox_adb.exe,将新的adb.exe复制一份改名nox_adb.exe。

8

打开模拟器

启动appium 桌面版客户端服务。

9

输入命令

在cmd进入夜神模拟器安装路径下的bin,输入命令:nox_adb.exe connect 127.0.0.1:62001 . 出现successfully,connected to 127.0.0.1:62001说明连接成功。

10

下载待测试应用的apk包

访问

http://www.appchina.com/app/com.ibox.calculators

并从

http://103.231.68.98/McDonald/e/6816204/0/0/0/1622518914826/package_1327.1622518914826

处下载待测试的计算器应用的apk包(将其命名为testcalc.apk)。

11

获取appPackage和appActivity

在cmd进入Android SDK中build-tools\29.0.3路径下(29.0.3代表版本号,在不同的环境下可能不同) 输入命令aapt.exe dump badging testcalc.apk (此处的testcalc.apk代表该文件的完整路径)

观察输出的

package: name='com.ibox.calculators'

launchable-activity: name='com.ibox.calculators.SplashActivity',

并修改demo.py中的

desired_caps['appPackage']='com.ibox.calculators'

desired_caps['appActivity']='com.ibox.calculators.SplashActivity'。

12

定位app中的元素

点击Appium界面上的放大镜按钮,如图3所示。

图3 启动Appium工具

配置Appium工具的参数,如图4所示。

图4 Appium参数配置

点击右下角的Start Session按钮,待应用启动完成后,点击刷新(Refresh Source & Screenshot),如图5所示。

图5 Appium刷新

点击左侧应用区域内的元素即可在右侧查看其所对应的id,如图6中显示的计算器界面上的1号数字按钮所对应的id为 com.ibox.calculators:id/digit1。

图6 获取元素id

获取元素id后,可以在demo.py中调用

driver.find_element_by_id

来对元素进行操作,若某元素不存在id,则可以用上述方法获取其xpath并调用

driver.find_element_by_xpath。

13

运行demo.py(以下代码)

fromappium importwebdriver

importtime

importunittest

desired_caps = {}

desired_caps[ 'platformName'] = 'Android'

desired_caps[ 'platformVersion'] = '7.1.2'

desired_caps[ 'deviceName'] = '127.0.0.1:62001'

desired_caps[ 'appPackage'] = 'com.ibox.calculators'

desired_caps[ 'appActivity'] = 'com.ibox.calculators.SplashActivity'

desired_caps[ 'unicodeKeyboard'] = True

desired_caps[ 'resetKeyboard'] = True

driver = webdriver.Remote( 'http://127.0.0.1:4723/wd/hub', desired_caps)

time.sleep( 10)

driver.find_element_by_id( "com.ibox.calculators:id/digit1").click

driver.find_element_by_id( "com.ibox.calculators:id/plus").click

driver.find_element_by_id( "com.ibox.calculators:id/digit2").click

driver.find_element_by_id( "com.ibox.calculators:id/equal").click

element = driver.find_element_by_xpath( "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView[2]")

print(element.text)

unittest.TestCase.assertEqual(element.text, "3")

time.sleep( 3)

driver.quit

目标应用成功启动,模拟点击‘1’ ‘+’ ‘2’ ‘=’ ,并断言其结果为 ‘3’ ,最后退出,终端中无任何错误信息,如图7所示。

图7 运行结果

04

项目总结

通过本项目,我们基本了解了使用Appium对Android上的APP进行测试的基本思路,熟悉了Appium测试工具的基本操作。

05

视频讲解

06

源代码下载

关注微信公众号,后台回复关键词 “demo” 即可获得完整源代码。

07

参考书籍

软件测试技术

ISBN:9787302573722

作者:吕云翔 况金荣 朱涛 杨颖 张禄

定价:59.80元

08

精彩推荐

  • 软件测试实训|界面自动化测试工具Selenium IDE 录制回放

  • 鲲鹏架构入门与实战︱鲲鹏应用迁移(附代码)

  • 《机器学习》实验指导书(附实验参考+代码)

  • Python爬虫综合实战 │ 创建云起书院爬虫(附代码)

  • Python爬虫实战 │ Email提醒(附代码)

  • Python深度学习 │一文掌握卷积神经网络

  • Python边做边学︱商品列表信息爬取(附代码)

  • P ython爬虫实战│状态521网页的爬取

  • Python爬虫实战│爬取天气数据的实例详解(附源码)

  • Python实训:用贪婪算法分析业务员路径问题|附源码

公司名称:温州企鹅制冷科技有限公司
主营产品:制冷和通风设备,冷水机