一、appium简介
1、什么是appium
- appium 是开源的移动端自动化测试框架;
- appium 可以测试原生的、混合的、以及移动端的 web 项目;
- appium 可以测试 ios,android 应用(当然了,还有 firefox os);
- appium 是跨平台的,可以用在 osx,windows 以及 linux 桌面系统上;
2、appium 的技术架构
- iOS:Apple’s UIAutomation
- Android 4.2+:Google’s UiAutomator
- Android 2.3+:Google’s Instrumentation. (Instrumentation support is provided by bundling a separate project, Selendroid)
3、appium 支持多平台、多语言
-
appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。
-
appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架.Appium实现了真正的跨平台自动化测试。
语言/框架 | Github地址 |
---|---|
Python | https://github.com/appium/python-client |
Java | https://github.com/appium/java-client |
Ruby | https://github.com/appium/ruby_lib |
JavaScript (Node.js) | https://github.com/admc/wd |
Objective C | https://github.com/appium/selenium-objective-c |
PHP | https://github.com/appium/php-client |
C# (.NET) | https://github.com/appium/appium-dotnet-driver |
RobotFramework | https://github.com/jollychang/robotframework-appiumlibrary |
4、appium 的工作原理
- 首先,appium 支持多语言,因为它针对流的几种语言分别开发的相应的 appium 库。好处就是我们可以选择自己熟悉的语言编写 appium 脚本。
- 其次,appium 支持多平台,包括 MAC 和 Windows。它针对这两大平台开发了 appium-Server。
- 最后,appium 又同时支持 Android 和 iOS 两个操作系统。这就使得 appium 变得非常灵活。
(1)自动化脚本向AppiumServer发送注册参数(URL,platformName,platformVersion,deviceName,appPackage,appActivity)
(2)AppiumServer将bootstrap.jar包放入手机端中
(3)手机端用bootstrap启动手机端口(4724),并将端口返回给AppiumServer(相当于建立好了通信连接)
(4)自动化脚本发送请求(操作或命令或动作)给AppiumServer
(5)AppiumServer将请求解析并发送给bootstrap
(6)bootstrap将请求解析发给UIAutomator
(7)UIAutomator执行相应的操作并将结果返回给bootstrap
(8)bootstrap将响应结果返回给AppiumServer
(9)AppiumServer将响应结果返回到脚本
综上所述,AppiumServer像是一个请求者;bootstrap充当桥梁的角色,负责PC与电脑之间的通信;UIAutomator则是真正的执行者。
二、准备工具
appium是基于JDK+SDK环境来运行的
①jdk环境:jdk的安装与配置
②Android SDK:Android SDK的安装与配置
③python:python的安装与配置
④appium,下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
⑤夜神模拟器,下载地址:https://www.yeshen.com/
使用真机测试,忽略第⑤步
三、连接真机或者模拟器(二选一)
app自动化测试可借助模拟器或者真机测试,最好选择使用真机测试。
首先要使用adb命令连接设备(此处选择模拟器)
adb连接真机或模拟器参考:adb连接真机或模拟器
四、appium环境搭建(Android)
1、appium 的安装
①下载完成后,双击exe文件进行安装(此处下载的1.3.1版本)
②安装完成后,启动Appium,host和port默认的即可
③点击start server v1.7.2
如果此端口被占用:可以使用此命令检查端口是否被占用:netstat -ano | findstr 4723
④进入到appium界面中
⑤配置Appium检查器
Appium右上角有三个选项分别为:
start inspector session 开始检查会话
Get Raw Logs 获得原生日志
Stop Server 停止服务
点击 start inspector session 选项,进入下图
⑥在Desired Capabilities选项中输入如下内容,如图:
1)deviceName:设备名称
获取方式:在cmd窗口输入adb devices (前提:已连接设备)
此处填写:127.0.0.1:62001
2)platformName:操作系统名称
可填写:Android和IOS
此处填写:Android
3)platformVersion:操作系统版本
夜神模拟器:【设置】->【关于平板电脑】->【Android版本】
此处填写:5.1.1
4)appPackage:待测app包名
此处用到的app(一笔记账):阿里云盘
https://www.aliyundrive.com/s/yREFAjBtNZi 提取码: 38et
aapt dump badging apk包路径 |findstr package
此处填写:com.mobivans.onestrokecharge
5)appActivity:app的程序主入口
aapt dump badging apk包路径 |findstr activity
此处填写:com.stub.stub01.Stub01
⑦点击右下角的 Start Session,会在设备中安装两个app(Appium Settings和Unlock)
启动成功后显示如下页面
注:点击 Start Session,出现如下错误,说明设备中未安装该app