Appium|Appium app自动化框架
App自动化搭建
- Appium app自动化框架
- 安装SDK
- 安装顺序
- adb
- adb命令
- aapt 命令
- 常用
- 步骤
- 定位工具
- 指令
- Android启动app
Appium app自动化框架 安装SDK
- SDK : software development kit 软件开发工具包,开发安卓的应用程序,运行安卓的应用程序,必要的使用工具。;
- 实现app自动化那么需要使用一个自动化测试工具/框架**appium **
1.安装jdk
2.安装sdk
3.安装appium
:支持android IOS
:支持不同平台搭建,windows,linux,max
:支持多语言,java,javascript,php,python - monkey :Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。;
- 客户端和服务端, 服务端是node.js开发。属于c/s架构
运行的时候,服务端监听客户端发送过来的命令,翻译命令发送给移动端或者模拟器,然后移动设备或模拟器,做出相应的反应。
文章图片
- ios没有模拟器,只能用真机。;
- windows系统,只支持测安卓应用 app只说测功能
如果想测ios app 应用,需要一台mac电脑,然后搭建环境。;
- 安装JDK
1.1 JAVA_HOME
1.2 path
1.3 CLASSPATH - 安装SDK
3 安装appium客户端
3.1 安装python
3.2 安装selenium
3.3 安装appium-python-client(客户端) - 安装appium服务端
- 安装模拟器
作用:
1.运行设备的shell 命令
在模拟器上进入某些目录,删除某些文件,创建目录
2.管理模拟器和真机设备
3.计算机和设备之间的数据上传和下载
4.本地的Apk包安装到模拟器或者安卓设备
adb命令 1.adb version (dos)查看使用版本
文章图片
2. adb devices
查看当前运行的设备列表 为空,代表没有运行的设备
如果显示:list of devices attached 附加设备列表
3.adb connect 127.0.0.1:62001
连接夜神模拟器,不同的模拟器有默认的端口号
逍遥的是:21503
文章图片
4. adb install +apk包名称
文章图片
5.adb install -r +apk包名称 再次安装,覆盖,重新安装apk包
文章图片
aapt 命令 android assert packaging tool
安卓资产打包工具
作
1.查看apk包名
2.查看acivity名称
命令:aapt dump badging +apk文件名称
查看apk包名和acivity
文章图片
文章图片
****3.adb uninstall +apk包名称 ()
删除应用
4.adb shell 进入adb shell 交互页面,可以执行shell命令
exit 退出shell交互页面****
5. pm list package -3 查看非系统设备的apk包名信息
注意点:必须要进入shell的交互页面,执行命令
文章图片
6.怎么把本地的文件,保存到sdcard 目录下
推送 push
adb + push 本地路径 +sdcard
文章图片
7.拉取设备上的文件,到本地
拉去pull
adb pull 设备上文件的路径+本地路径
sdcard/as
把sdcard中的as 拉取到D下的BBB…目录
文章图片
注意点:设备中分隔符左斜杠。
8. adb logcat 查看设备运行日志
9. adb logcat>e:\bb\logcat.txt
日志重定向到本地文件
结束导出,ctrl C
10.adb reboot 重启设备
11.adb start-server 启动adb服务
12.adb kill-server 关闭服务
会断开连接,需要启动和重连
13.adb shell screencap /sdcard/screen.png 截屏
desired_caps 渴望的参数
appium服务端连接移动设备,移动设备必须要告诉appium基本的参数
比如说:系统 未完
常用 desired_caps 渴望的参数
appium服务端连接移动设备,移动设备必须要告诉appium基本的参数
比如说:系统 未完
platformName 设备系统名称
#android or los
platformversion 设备系统版本,安卓系统
devicesname 移动设备名称
APPpackage :apk的包名
appactivity :activity
【Appium|Appium app自动化框架】unicodekeyboard :True #隐藏设备自带的键盘输入法
resetkeyboard:True
#重置设备自带输入法
步骤 1.启动 appium 服务端
勾选override session选项
2,pycharm。py文件中,引入appium库
from appium import webdriver
3.desired_caps 移动设备参数
4.webdriver.Remote 远程连接appium服务端
1.adbkill-server
2.adbstart-server
3.adbconnect127.0.0.1:62001
4.adb devices
#coding=utf8
from appium import webdriver
desired_caps={
“platformName”:“Android”, #系统名称
“platformVersion”:“4.4.2”,#系统版本
“deviceName”:“OPPO R11”,#设备型号
“appPackage”:“com.baidu.netdisk”, #apk包名
“appActivity”:“com.baidu.netdisk.ui.Navigate”,#activity
“unicodeKeyboard”:True,
“resetKeyboard”:True
}
webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’,desired_caps)
定位工具 D:\SDK\tools uiautomatorviewer.bat(最好用的)
文章图片
monkeyrunner.bat
uiautomatorviewer.bat 是最好用最强大的,支持不同的安卓版本
它与appium看日志的有冲突,使用时要暂停appium
app自动化页面元素定位
我们会使用定位工具 uiautomatorviewer
去dump (转储)一个当前页面
指令
id定位 resource-id
driver.find_element_by_id(‘com.tencent.mm:id/ji’)
name定位
text
driver.find_element_by_name(‘例如:陈晨’)
content-desc 定位
driver.find_element_by_accessibility_id(content-desc)
xpath定位
没有id 没有name,content-desc ,再考虑class定位。
driver.find_element_by_xpath(//android.widget.LinearLayout[@]/)
xpath和class经常组合使用
屏幕尺寸
size=driver.get_window_size()
屏幕滑动
1.向右滑动
Android启动app
python启动脚本如下:
from appium import webdriver说明:
desired_caps = {}
desired_caps[‘platformName’] = ‘Android’
desired_caps[‘platformVersion’] = ‘4.4’
#desired_caps[‘app’] = os.path.abspath(’/Users/a58/Downloads/zhuanzhuan_market_923.apk’)
desired_caps[‘appPackage’] = ‘com.wuba.zhuanzhuan’
desired_caps[‘appActivity’] = ‘.presentation.view.activity.LaunchActivity’
wd = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, 。desired_caps)
1.appium通过webdriver.Remote()传递appium的server地址和启动的client信息desired_caps
2.server的格式“http://serverip地址:4723/wd/hub”
3.desired_caps是一个字典格式,包含platformName等
各项介绍如下:
|
platformName
|你要测试的手机操作系统|iOS
, Android
, 或 FirefoxOS
||
platformVersion
|手机操作系统版本|例如: 7.1
, 4.4
||
appPackage
| 你想运行的Android应用的包名|比如com.example.android.myApp
, com.android.settings
||
appActivity
| 你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加 .
(如:使用.MainActivity
而不是 MainActivity
) |MainActivity
, .Settings
||
app
|.ipa
or .apk
文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip
。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-package
和app-activity
(具体见下面)的话,那么就可以不指定app
。 会与 browserName
冲突 |比如/abs/path/to/my.apk
或http://myapp.com/app.ipa
|4.Android机上如果安装了要测试的app,可以通过appPackage和appActivity指定要启动的app界面,而不需要app
如果指定了app(apk安装目录),则不用指定appPackage和appActivity。每次都会去重新安装一遍
5. 通过[adb devices]来判断真机是否连接到电脑上了(我用的是真机,一定要用数据线连接到电脑上)