Appium基础教程

2019-04-15  本文已影响0人  韩志超

[TOC]

Appium教程

Appium简介

Appium是一款开源的Appium自动化工具, 基于Webdriver协议, 主要有以下3个特点:

  1. 全能: 支持iOS/Andorid/H5/混合App/WinApp
  2. 通用: 支持Win/Linux/Mac, 支持Java/Python/Ruby/Js/PHP等各种语言
  3. 开源: 免费

App自动化测试工具对比

iOS

官方:

Andorid

官方:

其他:

多平台支持

云平台

Appium实现原理

Andorid(uiautomator)

image
  1. 调用Android adb完成基本的系统操作
  2. 向Android上部署bootstrap.jar
  3. bootstrap.jar Forward Android的端口到PC机器上
  4. PC上监听端口接收请求,使用webdriver协议
  5. 分析命令并通过forward 端口发给bootstrap.jar
  6. bootstrap.jar接收请求并把命令发给uiautomator
  7. ui automator执行命令

Andorid-uiautomator2-driver: bootstrap.jar改为使用uiautomato2 server apk, 使用netty server代替原来的websocket与PC端通信

iOS

  1. client端 依然是 test script是我们的webdriver测试脚本。
  2. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
  3. appium server调用instruments.js 启动⼀一个socket server,同时分出一个⼦子进程运⾏instruments.app,将bootstrap.js(一个UIAutomation脚本)注⼊入到device⽤于和外界进行交互
  4. 最后Bootstrap.js将执行的结果返回给appium server
  5. appium server再将结果返回给 appium client。

环境搭建

Mac Android/iOS环境搭建

Andorid介绍

基本架构

常见布局/视图

HierarchyViewer, uiautomatorviewer

基本控件

控件常见属性

Adb命令基础

Andorid sdk介绍

Adb介绍

Adb(Android Debug Bridge): Andoid设备调试桥梁, 可以再PC端通过命令调试Android设备, 如获取设备状态, 安装/卸载app, 上传/下载文件等操作

Adb常用命令

开启/关闭服务

连接设备/获取连接状态(自动开启服务)

安装/卸载app

通过uiautomatorviewer可以获取获取apk包名

上传/下载文件

adb push 1.txt /sdcard/
adb pull sdcard/1.txt .

adb shell: 可用于查看设备中的文件, exit退出

强大的adb shell

使用aapt获取包名, 主Activity(aapt位于Androidsdk/build-tools下)

aapt dump badging app-debug.apk
package: name='com.lqr.wechat'
...
launchable-activity: name='com.lqr.wechat.ui.activity.SplashActivity'
...

name中包含 包名.主Acitivty名

示例:

配合uiautomatorviewer查看元素坐标, 使用bounds中x,y的平均值, 屏幕分辨率1280*760, 滑动时可取平均值

adb install app-debug.apk
adb am start -n com.lqr.wechat/com.lqr.wechat.com.lqr.wechat.ui.activity.SplashActivity
adb shell input tap 170 1197
adb shell input text 18010181267
adb shell input keyevent KEYCODE_TAB
adb adb shell input tap 360 498
adb shell input swipe 700 540 10 540  # 滑动时离开一定边界
adb shell screencap -p /sdcard/01.png
adb shell input keyevent 3 # 按HOME键
adb pull /sdcard/01.png .  # 下载图片

支持的KEYCODE

Appium使用

获取app的Package和Activity

desired_caps

元素定位

uiautoviewer

上一篇 下一篇

猜你喜欢

热点阅读