一、Appium测试对象

Appium 的测试对象包括:原生 app,混合 app,移动 web app(就是用手机浏览器打开的网址)

二、Appium介绍

Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用

1、使用Appium进行自动化测试有两个好处

Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用

Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架.Appium实现了真正的跨平台自动化测试

2、Appium架构

Appium 是一个用Node.js编写的HTTP server,它创建、并管理多个 WebDriver sessions 来和不同平台交互,如 iOS ,Android等

Appium 开始一个测试后,就会在被测设备(手机)上启动一个 server ,监听来自 Appium server的指令. 每种平台像 iOS 和Android都有不同的运行、和交互方式。所以Appium会用某个桩程序“侵入”该平台,并接受指令,来完成测试用例的运行

三、Appium环境搭建(Android)

1、需要准备

  1. jdk

  2. android SDK

  3. appium

  4. nodejs

  5. appium lib
    选择Python版本的Lib: Appium-Python-Client-0.22.tar.gz

由于Appium依赖于Selemium,所以还要下载 Selemium Lib: selenium-2.53.2.tar.gzhttps://pypi.python.org/pypi/selenium

  1. python

2、安装、配置

将上述软件依次安装

  1. 安装JDK, 配置环境变量
  2. 安装Android SDK, 配置环境变量
  3. 安装Appium-Windows-Desktop
  4. 安装Appium-Python-Client
  5. 安装模拟器

四、Appium的实现原理和自动化原理

1、实现步骤过程

  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执行命令

2、自动化原理

在这里插入图片描述
Test script:
这是我们的测试程序,是测试逻辑的实现部分

Appium Server:
这是一个 JavaScript 代码实现的程序。是运行在 Node.js 里面的

被测试 app:
运行在真实设备或者模拟器中

这个测试系统运行起来交互关系:测试程序(Test scrip),告诉 Appium Server 做什么操作。之间有 http 的连接,通过 http 请求发送命令给 Appium Server ,Appium Server 接收到测试程序的命令后,再发出命令给设备上运行的控制程序,控制程序调用相应自动化库里面的方法去执行界面的控制

五、Appium的andorid基本架构介绍

1、常见布局视图

线性布局: LinerLayout
相对布局: RelativeLayout
帧布局: FrameLayout, 叠放
普通视图: View
切换视图: ListView, 注意, 其中的元素会动态变化
HierarchyViewer, uiautomatorviewer

2、基本控件

TextView: 文本
Button: 按钮
EditText: 输入框
ImageView: 图片
其他: Alert(警告框)/Toast(提示消息)/SeekBar(滑块)/Webview(嵌入网页)

3、控件常见属性

index: 索引, 用于排序

text: 控件名称(显示文本)

resource-id: 资源id

class: 控件类型(文本/按钮/输入框等)

content-desc: 控件描述

package: 所属包(一个包就是一个apk)

enabled: 是否可用

clickable: 是否可点击

focused: 是否聚焦状态

bounds: 坐标

六、Adb命令基础(之前有写过一篇关于adb的文章)

博客地址 : https://blog.csdn.net/HONGTester/article/details/107693115?spm=1001.2014.3001.5501

1、Adb介绍

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

2、Adb常用命令

2.1 开启/关闭服务

adb start-server: 开启服务
adb kill-server: 关闭服务

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

adb connect/disconnect 设备名或uuid: 连接/断开连接设备
adb devices: 查看连接的设备

2.3 安装/卸载app

adb install 安装包路径.apk
adb uninstall apk包名
通过uiautomatorviewer可以获取获取apk包名

2.4 上传/下载文件

上传: adb push 本地文件 设备目录
下载: adb pull 设备文件 本地目录

2.5 Copy

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

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

pm:
应用及权限管理 adb shell pm list packages

am:
Activity操作 adb shell am start -n 包名/包名.主Activity名

input:
模拟按键/输入

点击(触控)指定坐标:
adb shell input tap 50 250

输入文字:
adb shell input text hello

按键:
adb shell input keyevent 3

滑动:
adb shell input swipe 300 1000 300 500

logcat:
日志查看及过滤(问题定位)

monkey:
性能/稳定性测试

dumpsys:
性能分析

screencap:
截图 adb shell screencap -p /sdcard/01.png

screenrecord:
录屏 adb shell screenrecord --time-limit 10 /sdcard/demo.mp4

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐