Appium+Python自动化测试(二)——运行App程序示例

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

创建模拟器

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

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

点击Create创建一个Android模拟器

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

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

获取应用的packageName和activityName

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

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

使用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路径”

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

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

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

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 webdrivedesired_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

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

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

————————————————
版权声明:本文为CSDN博主「zh175578809」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zh175578809/article/details/76862590

原文地址:https://www.cnblogs.com/kuaileya/p/11984084.html

时间: 2024-11-08 00:05:19

Appium+Python自动化测试(二)——运行App程序示例的相关文章

appium+python解决每次运行代码都提示安装Unlock以及AppiumSetting的问题

appium+python解决每次运行代码都提示安装Unlock以及AppiumSetting的问题(部分安卓机型) 1.修改appium-android-driver\lib下的android-helpers.js文件 安装路径\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\android-helpers.js //await adb.install(unicode

使用Appium+python爬取手机App

一.搭建运行环境 1.jdk安装 8版本 环境配置 JDK官网下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装完成后配置环境变量: 打开:我的电脑->属性->高级系统设置->环境变量 1.新建JAVA_HOME:C:\Program Files\Java\jdk1.8.0_161(jdk目录路径) 2.找到Path,没有的话新建Path:%JAVA_HOME%\bin;%PATH% 注意:如果

Appium python自动化测试系列之日志的收集(十二)

?13.1 日志的定义 13.1.1 日志的定义 听到日志这个东西可能有的人莫名其妙,第一次接触就会觉得我们为什么要收集日志,即使要收集日志那么我们需要收集哪些日志,日志的作用是什么等等. 其实日志无论是在测试.开发中都非常重要,如果你在跑自动化时程序报错了,但是你没有日志你怎么去定位时程序错误还是你app的错误?或者还是其它环境因素? 在java中有log4j这日志模块,在python里面我们使用的是logging这个模块,这个模块不需要你去怎么下载安装等等,python自带的有,你只需要拿来

Appium python自动化测试系列之混合app实战(十一)

12.1 什么是混合App 12.1.1 混合app定义 什么是混合app,其实这个不言而喻,我们的app正常来说应该都是native的,但是实际工作中却不是,反正种种原因我们的app会有native的而且中间还会有H5页面,这其实就是我们常说的混合,当然还有一种就是纯H5的,但是这里我们不做过多的讲解. 12.2 混合app实战思路 12.2.1 代码实战 在前面的的章节内嵌h5页面定位我们就已经讲过这个问题,其实本讲的内容大家可以仔细把定位的内嵌h5定位问题再回顾一遍那么你就能够理解这里面的

appium+python自动化46-安装app三种方式

adb安装 1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上 adb install [apk在电脑上的绝对路径] 2.也可以用python执行adb命令安装app,代码实现如下: # coding:utf-8 import os # 安装app,为了方便,把app放到当前脚本同一目录 os.system("adb install baidu.apk") appium本

appium+python自动化56-微信小程序自动化(摩拜为例)

前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0appium v1.7.1 webview进程 1.小程序和微信公众号还不太一样,基本思路差不多,先配置:chromeOptions 'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'} 2.androidProcess进程可以通过adb shell去查看,先点开

Appium + Python 测试 QQ 音乐 APP的一段简单脚本

1. 大致流程 + 程序(Python):打开 QQ 音乐,点击一系列接收按键,进入搜索音乐界面,输入『Paradise』,播放第一首音乐. 2. Python 脚本如下 from appium import webdriver import time desired_caps = {} desired_caps['platformName'] = 'Android' # adb shell getprop ro.build.version.release 获得版本号 desired_caps[

Windows&Appium&Python自动化测试-Appium安装

一.安装node.js 官方下载地址为:https://nodejs.org/en/download 傻瓜式安装即可,安装完成后,CMD中运行node -v查看版本号 输入npm 出现如上图信息,表示 node.js 安装成功.npm 是一个 node 包管理和分发工具,有了 npm,后面就可以输入指令在线安装 appium """ 此处内容无需执行,仅供参考,虽然也可以实现,但后边内容给了更好方式 安装appium服务端,可通过cmd 下输入 npm install -g

Appium python自动化测试系列之使用HTMLTestRunner生成测试报告(十三)

?13.1 测试报告概述 13.1.1 测试报告的定义 在前面章节我们已经讲了自动化基础的很多东西,如果说掌握了,而且自己动手去练习了,我相信在一些初级的面试中是没任何问题的,今天我们接触的应该算是一个比较新的东西,也算是开启另一层知识的大门. 在手工测试过程中如果发现了bug我们需要提交测试报告,自动化中虽然当程序出错的时候我们不可能让程序自动去提交bug(其实也可以,只是需要自己去开发模块,思路:当程序监听到错误的时候就触发一个提交bug的程序),但是为了体现工作的价值当自动化跑完之后是不是