等峰也等你

博客园 首页 新随笔 联系 订阅 管理

目前 mobile 自动化解决方案

iOSAndroid
Calabash-iOS calabash-Android
Frank MonkeyTalk
UIAutomation Robotium
iOS-driver UIAutomator
KeepItFunctional Selendroid
Macaca Macaca
Appium Appium

 

自动化工具选择

工具名称被测系统脚本语言是否支持 H5是否支持跨应用工具稳定性是否为 sdk 自带
MonkeyRunner Android   Y N 稳定 Y
Monkey Android Java N N 稳定 Y
Uiautomator2 Android Java Y Y 稳定 Y
Uiautomation iOS 弃用        
Adb-For-Test Android Java/Python Y Y 稳定 Y
Appium Android,iOS Java/Python/JS/C# Y Y 一般 N

选择条件

 
  • 单平台测试/多平台测试?
  • 是否多设备同时测试?
  • 不局限测试环境,任何版本、任何环境都可以测试?
  • 最擅长开发语言
  • 当前市面是否有满足项目需求的测试工具?是否需二次开发?

应用划分

 
  • 原生应用

    • 用 android 或 iOS 编写的应用
  • 移动网页应用

    • 网页应用,类似于 iOS 中 safari 或者 QQ 浏览器
  • 混合应用

    • 包裹 webview 的应用

什么是 Appium

 
  • appium 简介

  • 移动端的自动化测试框架

  • 第三方自动化工具

  • app 自动化测试

  • 开源的、跨平台的

    • ios、Android、Window、Mac、

什么是 Appium

 
  • appium 简介

  • Client/Server Architecture:c/s 架构

  • 脚本多语言支持

    • Java、Python、ruby、PHP、JavaScript、C#
  • 生态丰富,社区强大

Appium 原理

 
@startuml
scale 3
left to right direction
package CTO {
  actor 脚本
}
package 总监{
  usecase "Appium Module"

}
package 项目经理 {
  usecase "app"

}
CTO ---> 总监
总监 ---> 项目经理
项目经理 ---> 总监
总监 ---> CTO
@enduml

Appium 通信原理

 

Appium Server

  • server 里面不只有 webDriver「安卓 driver、 iOSdriver」还有各种工作引擎

Appium 工作引擎

 
PlatformDriverPlatform VersionsAppium Version
iOS XCUITest「推荐」 iOS 9.3+ Appium 1.6+
  UIAutomation「弃用」 iOS 9.3- All
Android UiAutomator All Appium 1.14+
  UiAutomator2「推荐」 Android5.0+ Appium 1.6+
  Espresso   Appium 1.9+
Mac appium-mac-driver Mac OS X 10.7 Appium 1.6.4+
Windows windows Windows 10 Appium 1.6+

Appium 生态工具

 
  • 命令行工具
    • adb
    • ideviceinstaller
  • Appium Desktop
    • Appium Server GUI
    • Appium Inspector
  • Appium Client
  • AppCrawler

Android 命令行工具

 
  • 管理移动端设备上应用程序的安装与卸载,以及查看相关信息

  • adb

    • 安卓系统的命令行控制工具
    • 获取安卓端的各种数据和控制
    • sdk 自带工具
    adb devices #显示当前所连接设备的udid

iOS 命令行工具

 
  • ideviceinstaller

    • iOS 系统的命令行控制工具
    • 获取 iOS 端的各种数据和控制
    idevice_id -l #显示当前所连接设备的 udid

Appium Desktop

 
  • 内嵌了 Appium Server

  • Appium Server GUI

    • Appium 核心工具,命令行工具
  • Appium Inspector

    • 1.22 版本后,和 desktop 分开

Appium Client

 
  • 各种语言的客户端封装库、用于连接 Appium Server

AppCrawler

  • 自动化遍历工具,底层也是 Appium

Appium 安装-简化版

  • jdk
  • adb
  • appium desktop
  • https://ceshiren.com/t/topic/2270

jdk

  • 11
java -version

sdk

  • 第一种方式:简装版

    • 文件直接解压缩
      • 文件路径全英文不带空格
    • 配置环境变量
  • 第二种方式:android studio

    • https://ceshiren.com/t/topic/4001
  • 验证

    adb version

Appium Desktop

  • github 下载版本 1.19.1 不分开

  • release

  • 无需环境变量配置

验证

  • 使用安卓端验证相关环境是否安装成功

      1. 命令行验证 jdk、adb
      1. 打开 Appium Desktop,点击 start server 不报错
      1. 准备安卓设备(真机/模拟器)连接电脑
      1. adb 命令查看设备是否连接
      1. 编写启动配置,启动 app 不报错

模拟器竖屏

  • [l] mumu 设置竖屏 

参数查看

  • 查看设备 ID

    adb devices
  • 查看设备的 Android 系统版本

    adb shell getprop ro.build.version.release
  • 查看想要启动 app 的包名

    adb shell pm list packages
  • 查看想要启动 app 的启动页面

    adb shell monkey -p ${package.name} -vvv 1

启动参数

{
  "platformName": "Android",
  "appium:platformVersion": "6.0",
  "appium:deviceName": "emulator-5554",
  "appium:appPackage": "com.android.settings",
  "appium:appActivity": ".Settings"
}
posted on 2023-12-17 12:21  等峰也等你  阅读(11)  评论(0编辑  收藏  举报