Appium|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|Appium app自动化框架
    文章图片
  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|Appium app自动化框架
文章图片

2. adb devices
查看当前运行的设备列表 为空,代表没有运行的设备
如果显示:list of devices attached 附加设备列表
3.adb connect 127.0.0.1:62001
连接夜神模拟器,不同的模拟器有默认的端口号
逍遥的是:21503
Appium|Appium app自动化框架
文章图片

4. adb install +apk包名称
Appium|Appium app自动化框架
文章图片

5.adb install -r +apk包名称 再次安装,覆盖,重新安装apk包
Appium|Appium app自动化框架
文章图片

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

1.查看apk包名
2.查看acivity名称
命令:aapt dump badging +apk文件名称
查看apk包名和acivity
Appium|Appium app自动化框架
文章图片

Appium|Appium app自动化框架
文章图片

****3.adb uninstall +apk包名称 ()
删除应用
4.adb shell 进入adb shell 交互页面,可以执行shell命令
exit 退出shell交互页面****
5. pm list package -3 查看非系统设备的apk包名信息
注意点:必须要进入shell的交互页面,执行命令
Appium|Appium app自动化框架
文章图片

6.怎么把本地的文件,保存到sdcard 目录下
推送 push
adb + push 本地路径 +sdcard
Appium|Appium app自动化框架
文章图片

7.拉取设备上的文件,到本地
拉去pull
adb pull 设备上文件的路径+本地路径
sdcard/as
把sdcard中的as 拉取到D下的BBB…目录
Appium|Appium app自动化框架
文章图片

注意点:设备中分隔符左斜杠。
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(最好用的)
Appium|Appium app自动化框架
文章图片

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]来判断真机是否连接到电脑上了(我用的是真机,一定要用数据线连接到电脑上)

    推荐阅读