Appium app自动化框架

App自动化搭建

  • Appium app自动化框架
    • 安装SDK
    • 安装顺序
    • adb
    • adb命令
    • aapt 命令
    • 常用
    • 步骤
    • 定位工具
      • 指令
      • Android启动app

Appium app自动化框架

安装SDK

  1. SDK : software development kit 软件开发工具包,开发安卓的应用程序,运行安卓的应用程序,必要的使用工具。;
  2. 实现app自动化那么需要使用一个自动化测试工具/框架**appium **
    1.安装jdk
    2.安装sdk
    3.安装appium
    :支持android IOS
    :支持不同平台搭建,windows,linux,max
    :支持多语言,java,javascript,php,python
  3. monkey :Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。;
  4. 客户端和服务端, 服务端是node.js开发。属于c/s架构
    运行的时候,服务端监听客户端发送过来的命令,翻译命令发送给移动端或者模拟器,然后移动设备或模拟器,做出相应的反应。
    Appium app自动化框架_第1张图片
  5. ios没有模拟器,只能用真机。;
  6. windows系统,只支持测安卓应用 app只说测功能
    如果想测ios app 应用,需要一台mac电脑,然后搭建环境。;

安装顺序

  1. 安装JDK
    1.1 JAVA_HOME
    1.2 path
    1.3 CLASSPATH
  2. 安装SDK
    3 安装appium客户端
    3.1 安装python
    3.2 安装selenium
    3.3 安装appium-python-client(客户端)
  3. 安装appium服务端
  4. 安装模拟器

adb

androld debug bright 安卓调试桥
作用:
1.运行设备的shell 命令
在模拟器上进入某些目录,删除某些文件,创建目录
2.管理模拟器和真机设备
3.计算机和设备之间的数据上传和下载
4.本地的Apk包安装到模拟器或者安卓设备

adb命令

1.adb version (dos)查看使用版本Appium app自动化框架_第2张图片
2. adb devices
查看当前运行的设备列表 为空,代表没有运行的设备
如果显示:list of devices attached 附加设备列表

3.adb connect 127.0.0.1:62001
连接夜神模拟器,不同的模拟器有默认的端口号
逍遥的是:21503
Appium app自动化框架_第3张图片
4. adb install +apk包名称
Appium app自动化框架_第4张图片
5.adb install -r +apk包名称 再次安装,覆盖,重新安装apk包
Appium app自动化框架_第5张图片

aapt 命令

android assert packaging tool
安卓资产打包工具

1.查看apk包名
2.查看acivity名称

命令:aapt dump badging +apk文件名称
查看apk包名和acivity
Appium app自动化框架_第6张图片
Appium app自动化框架_第7张图片
****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…目录
Appium app自动化框架_第8张图片
注意点:设备中分隔符左斜杠。
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

unicodekeyboard :True #隐藏设备自带的键盘输入法

resetkeyboard:True
#重置设备自带输入法

步骤

1.启动 appium 服务端
勾选override session选项
2,pycharm。py文件中,引入appium库
from appium import webdriver
3.desired_caps 移动设备参数
4.webdriver.Remote 远程连接appium服务端

1.adb  kill-server 
2.adb  start-server
3.adb  connect  127.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(最好用的)
Appium app自动化框架_第9张图片
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-packageapp-activity(具体见下面)的话,那么就可以不指定app会与 browserName 冲突 |比如/abs/path/to/my.apkhttp://myapp.com/app.ipa|

4.Android机上如果安装了要测试的app,可以通过appPackage和appActivity指定要启动的app界面,而不需要app
如果指定了app(apk安装目录),则不用指定appPackage和appActivity。每次都会去重新安装一遍
5. 通过[adb devices]来判断真机是否连接到电脑上了(我用的是真机,一定要用数据线连接到电脑上)

你可能感兴趣的:(Appium app自动化框架)