Appium+Python自动化测试之运行App程序示例

作者:zh175578809 时间:2023-07-29 01:54:20 

在上一篇博客中,已经将环境搭建好了。现在,我们利用搭建的环境来运行一条测试脚本,脚本中启动一个计算器的应用,并实现加法的运算。

创建模拟器

在运行App之前,首先需要创建一个Android模拟器,也可以使用真机来运行,效果更佳。

进到Android SDK的目录,双击运行AVD Manager.exe

Appium+Python自动化测试之运行App程序示例

点击Create创建一个Android模拟器

Appium+Python自动化测试之运行App程序示例

输入一个模拟器名称,选择设备类型和API版本,点击进行创建。创建完成后会显示当前所有的设备,选择设备,点击Start启动

Appium+Python自动化测试之运行App程序示例

第一次启动的时候会有点慢,要等几分钟,启动以后就好了,模拟器刚启动后的界面是这样的

Appium+Python自动化测试之运行App程序示例

获取应用的packageName和activityName

在写测试脚本之前,要知道被测试apk的packageName和要启动的activityName,如果是第三方的apk,有现成的可以直接使用。这里启动的是模拟器内置的应用,所以要把apk从模拟器中导出来

模拟器中预置的应用都放在手机的system/app目录中,使用adb shell命令进入目录查看计算器应用的apk名称

Appium+Python自动化测试之运行App程序示例

使用ls *.apk命令列出所有的apk,查找到apk文件为Calculator.apk,然后使用adb pull system/app/Calculator.apk d:/命令将文件导出到电脑中。

将apk导出后,Android SDK中有一个aapt的工具可以用来查看应用的包名和要启动的activity名称,工具在SDK的build-tools目录下,命令格式为”aapt dump badging apk路径”

Appium+Python自动化测试之运行App程序示例

输入命令后,第一行的输入中包含应用的包名

package: name='com.android.calculator2' versionCode='17' versionName='4.2.2-3453820'

在输入快到结尾的时候,有一行包含应用启动时打开的activity名称

Appium+Python自动化测试之运行App程序示例

launchable-activity: name='com.android.calculator2.Calculator' label=” icon='

这样就得到了packageName和activityName

Capability

Capability是一个字典,配置的是自动化测试的一些必要信息,包含了本次测试的平台名称及版本号、启动的是浏览器还是app等,客户端将这些告诉服务器,服务器根据这些信息创建自动化会话。这里只介绍跟Android平台相关并且常用的几个

automationName:定义测试引擎,使用的android-sdk版本小于17时,使用Selendroid,大于等于17时使用Appium,默认是Appium

platformName:测试平台,通常用于移动设备,值有:Android、IOS、FirefoxOS

platformVersion:测试平台版本,根据设备的固件版本指定,例如Android的4.2、IOS的7.1

deviceName:设备名称

app:要安装的app的文件路径,可以是本地的绝对路径,也可以是远程网络路径

browserName:启动的浏览器名称,测试的是web应用时指定,Android平台设置为Chrome

newCommandTimeout:为了结束Appium会话,会设置一个等待从客户端发送命令的超时时间,默认为60秒,一般不需要设置

autoLaunch:测试时是否需要自动运行app

appPackage:设置app的包名,告诉Appium需要启动的app

appActivity:设置启动的Activity

appWaitActivity:要等待的Activity

appWaitPackage:要等待的appPackage

unicodeKeyboard:是否使用unicode键盘输入,在输入中文字符和unicode字符时设置为true

resetKeyboard:是否将键盘重置为初始状态,设置了unicodeKeyboard时,在测试完成后,设置为true,将键盘重置

上述的几个Capability只是在测试中经常用到的,更多的Capability在用到的时候可以在网上查阅

编写测试脚本

新建test.py,输入下面的代码


# -*- coding: utf-8 -*-

from appium import webdriver

desired_caps = {
   'platformName': 'Android',
   'deviceName': 'emulator-5554',
   'platformVersion': '4.2',
   'appPackage': 'com.android.calculator2',
   'appActivity': 'com.android.calculator2.Calculator'
 }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.find_element_by_name('7').click()
driver.find_element_by_name('+').click()
driver.find_element_by_name('8').click()
driver.find_element_by_name('=').click()

保存文件,打开Appium,点击右上角的三角形按钮启动Appium

Appium+Python自动化测试之运行App程序示例

出现> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)这行信息后,就表示Appium启动成功了

Appium+Python自动化测试之运行App程序示例

Appium启动成功后,运行测试脚本,模拟器会运行计算器应用,计算加法

Appium+Python自动化测试之运行App程序示例

来源:https://blog.csdn.net/zh175578809/article/details/76862590

标签:Appium,Python,运行App
0
投稿

猜你喜欢

  • Python实现双向链表

    2022-06-12 17:41:34
  • Python实现变声器功能(萝莉音御姐音)

    2023-04-12 23:04:16
  • Python面向对象特殊成员

    2021-07-03 12:05:48
  • Python调用graphviz绘制结构化图形网络示例

    2021-09-15 19:06:49
  • SQLSERVER 本地查询更新操作远程数据库的代码

    2024-01-21 05:16:47
  • CSS网页布局扩展小技巧

    2010-06-03 12:13:00
  • js+html5实现半透明遮罩层弹框效果

    2024-05-08 09:33:09
  • Docker-Compose创建mysql容器详解

    2024-01-17 06:10:19
  • Python包和模块的分发详细介绍

    2021-10-06 07:25:32
  • Python实现随机生成手机号及正则验证手机号的方法

    2021-05-30 01:41:27
  • PHP mysqli扩展库 预处理技术的使用分析

    2023-11-21 07:10:21
  • 在NumPy中创建空数组/矩阵的方法

    2023-11-02 05:30:35
  • Python干货:分享Python绘制六种可视化图表

    2023-07-10 10:01:03
  • Python使用海龟绘图实现贪吃蛇游戏

    2022-01-03 15:21:28
  • python 获取sqlite3数据库的表名和表字段名的实例

    2024-01-24 13:34:22
  • 使用Django框架中ORM系统实现对数据库数据增删改查

    2024-01-28 03:25:50
  • Python实现微信好友的数据分析

    2023-10-21 15:54:20
  • python将pandas datarame保存为txt文件的实例

    2021-11-17 06:21:51
  • git_stats web代码图形统计工具详解

    2023-10-29 23:16:03
  • JS实现点击li标签弹出对应的索引功能【案例】

    2024-04-17 10:24:23
  • asp之家 网络编程 m.aspxhome.com