服务器之家

服务器之家 > 正文

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

时间:2021-05-21 00:18     来源/作者:zh175578809

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

创建模拟器

在运行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,输入下面的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- 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

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部