SDK环境部署,Appium集成环境

一.APP自动化框架比较

 

 

app类型:原生类型(Native)(找开发问),web类型(Web)(不需要安装,只要通过网址就可以访问),混合类型(Hybrid)

对于原生app:每一个元素控件部有一个红色的框框框起来

混合:多个元素控件在一个红色的框里

Appium自动化框架介绍

  1,官方网址:http://appium.io/

  2,跨架构,支持原生,混合以及web移动应用

  3,跨平台,Android&IOS

  4,跨语言,支持Java、Python,Ruby等

Appium组件介绍

Ø 服务端
1. Appium Server
  •Appium的核心,实质上是一个web接口服务器,使用node.js实现
2. Appium GUI
  •Appium Desktop的前身,已停止维护,封装的Appium Server是1.4.16
3. Appium Desktop(推荐)
  •内嵌了Appium Server,提供了GUI界面,还包括其他工具的整合(如Appium Inspector)
Ø 客户端
•Appium Client并不是真正的测试框架客户端,而是由各种语言的库文件组成,这些库都实现了Appium 对WebDriver协议的扩展,因此当使用Appium的时候,只需要使用这些库代替常规的WebDriver库就可以
客户端由不同的语言来决定的,不同语言有对应的不同客户端名称。

二,Appium的工作原理

2.1,appium的框架组成

 

Appium框架组成是自动化脚本即client端(通过Java编写的代码,也可以通过其他语言编写),Appium指令服务器,sdk通信环境(Android模拟器)或移动端设备(这里是测试Windows平台的设备,)。
2.2 Appium的通信原理
Appium通信原理:Client端发送自动化指令给Appium server,Appium Server接收到client发送的指令后,转换为移动端能够识别的指令,然后发送给移动端设备,并对移动端设备进行操作。

Client端:

一般来说就是运行代码的机器,即我们是用Java语言编写的代码,也可以用其他Selenium支持Python,ruby,C#等语言来编写,Appium提供的Appium-client API是Appium通过扩展Selenium的Webdriver协议而来的,我们编写代码的时只要实现Webdriver标准协议即可。

 Appium Server:

Appium Server功能是监听接口,接收client端发送的command,然后将command转为移动端能够识别的command,然后发送给移动设备进行操作,再等待移动设备返回来的操作结果,将操作结果发送给client端。 Appium server是可以放在client端,也可以放在云端。 Appium server 默认的端口号是4723,用于Appium server监听client端的发送来的请求。

Android设备

     Android端,Appium基于Webdriver协议,利用Bootstrap.jar,最后通过调用UIautomatior命令,实现APP的自动化测试(Android4.2以前的版本是用Instrumentation框架,通过绑定另外一个独立的selendroid项目来实现),Android4.2以后的版本是用UIautomator)。UIAutomator测试框架是Android SDK自带的APP UI自动化测试Java库,另外UIAutomator对H5支持有限,Appium引入了Chromedriver以及Safaridriver来实现H5的自动化。

 

在Android设备的工作过程:

  1.Appium server将监听到的4723端口的指令,转发给中间件Bootstrap.jar,Bootstrap.jar是用Java编写的,安装在Android手机上;

  2.Bootstrap监听4724端口并接收Appium server的指令;

  3.Bootstrap再通过调用UIautomator的命令来实现具体的command操作。

  4.最后Bootstrap将执行的结果返回给Appium server。

 
appium的整体架构是C/S模式,整体流程
脚本请求 ——> 4723端口appium server ——> 解析参数给PC端4724端口 ——> 发送给设备4724端口 ——> 通过设备4724端口发给bootstrap.jar ——> Bootstrap.jar把命令发给uiautomator

 

三.APP运行环境部署

  1. JDK:Android SDK运行的必要环境
  2. Android SDK
  3. 模拟器安装
  4. ADB配置

3.1JDK安装&环境变量配置

  1. 安装:默认安装
  2. 环境变量配置
  •新建JAVA_HOME:安装路径
  •新建CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  •在path中增;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
  3. 验证是否安装好javac java java -version

3.2 Android SDK安装与变量配置

1. 下载:http://www.androiddevtools.cn/
2. 安装:解压即可
3. 环境变量配置
•新建ANDROID_HOME:解压路径
•在path中增加:.;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
4. 验证是否安装好
  android –h

3.3 模拟器安装(有真机就跳过)

1. 模拟器选择:夜神、逍遥、雷电、MuMu、蓝叠等等
2. 下载:夜神模拟器:https://www.yeshen.com/
3. 安装:默认安装即可,记住安装路径。后续ADB配置要用到。

 

 

 3.4 ADB配置

ADB是Android SDK自带的命令行工具,我们前面装好了Android SDK,所以在这只需要验证ADB能否使用就Ok
进入cmd,输入adb --version,可以显示adb的版本号就表示adb环境是ok的

3.5 ADB连接模拟器

Ø 前提:
1. 打开模拟器
2. 打开模拟器的usb调试;
•进入设置--开发者选项--打开usb调试。
•如果没有开发者选项,在设置--关于平板电脑,连续点击版本号多次,直到提示您已处于开发者模式。然后就可以在设置下看到开发者选项了

 

 2.5.1 ADB连接模拟器-成功

打开cmd,输入adb devices,查看设备是否连接;显示设备号和device则表示连接成功
连接信息解释
1. 手机设备:显示设备的序列号,即b2355f8a
2. 模拟器:显示ip地址和端口,即127.0.0.1:62001
3. device:已识别的设备,连接成功
4. unauthorized:没有授权,需要手机上授权后才能连接
5. unkown:未识别的设备
6. offline:离线设备
 2.5.1 ADB连接模拟器-失败
打开cmd,输入adb devices,查看设备是否连接,如下图所示,则表示adb版本有问题。
原因:夜神模拟器带了一个ADB,Android SDK也有一个ADB,当两者版本不一致时就会出现如下问题

解决:统一ADB版本即可。

四,APP自动化环境部署

4.1 App自动化运行环境

1. Appium服务端-Appium Desktop(桌面版的)
2. Appium客户端-appium-python-client
3. 脚本编写工具IDE-pycharm

4.2 Appium Desktop服务端

4.2.1. Appium Desktop下载地址:https://github.com/appium/appium-desktop/releases

4.2.2. 安装:默认安装

4.2.3. 服务启动

• 验证Appium Desktop是否安装成功,打开桌面的Appium应用,点击“Start Server
v1.13.0”,能够正确启动Appium服务则说明安装成功。

4.3.appium-python-client客户端

Python语言的Appium Client安装:appium-python-client

appiun-python-client是python语言版本的Appium库文件,在Python环境准备完成后,可以利用pip工
具进行安装

进入cmd命令行,输入安装命令:pip install appium-python-client

 五,Appium Desktop介绍

5.1 Appium Desktop-基础配置 

5.1.1 Appium Desktop的界面有三个选项卡

  • 1. Simple:基础配置
  • 2. Advanced:高级配置
  • 3. Presets:预设配置

 

 

5.1.2  Simple:基础配置 

  • 1. Host:服务端的主机地址 • Appium客户端运行时,会通过该地址发送请求到Appium服务端,默认为0.0.0.0,代表Appium服 务端所有主机的所有IP
  • 2. Port:服务端的主机端口 • 默认4732,Appium客户端与Appium服务端通过4732端口通讯

5.2 Appium Desktop-高级配置 

  • 1. General:常规选项,进行Android和IOS自动化测试时公共的设置项
  • 2. IOS:仅包含用于IOS自动化测试的设置下
  • 3. Android:仅包含用于Android自动化测试的设置下:这些选项并不要求强制设置,只有在少数情况下需要设置,所以不需要 的时候可以跳过

 5.3 Appium Desktop-预设配置

1. 高级配置保存的信息会显示在这里
2. 在这里可以配置环境变量

5.4 服务启动界面

5.4.1 在Simple中输入服务器地址和端口后,点击StartServer即可启动服务,窗口会自动跳转到
服务端运行的日志屏幕界面。
5.4.2 在服务端的日志屏幕右上方,三个功能按钮的含义分别是:

  • 1. 启动Appium的Inspector工具,进行移动应用的元素检测
  • 2. 查看Appium的原始日志
  • 3. 停止Appium的服务端的运行

 六,Inspector工具配置与使用

6.1 Inspector工具

1,App元素探测工具有两个,一个是Appium Inspector,另一个是UIAutomatorViewer

2, Appium Inspector使用

1. 配置设备信息
2. 获取操作

6.2 Inspector工具配置Desired Capabilities

启动服务后,点击右上角的放大镜按钮,即可进入Appium Inspector界面

 

 6.3 Desired Capabilities配置参数

deviceName 设备名 IOS平台:instruments -s devices Android平台:adb devices
platformName 平台名称:IOS,Androi
appPackage 需要测试的APP包名
appActivity 启动入口事件
platformVersion 设备系统版本号

6.4 完成Inspector工具的Desired Capabilities配置

1,填入参数名和参数值,保存参数设置,然后点击start session启动配置

 2,点击start session,查看能否启动成功,inspector工具出现app的界面就表示启动成功

6.5,Inspector工具界面介绍 

1,界面部分:

1.左侧部分:待测试应用的界面截图,可以在截图中获取元素的属性信息 

2.中间部分:待测试应用的界面原码,Inspector工具录制生成的代码也在这部分显示 

3.右侧部分:展示界面中选中的元素属性信息,如果选中的部分是可交互的,这部分上

Ø 还有三个功能按钮可以使用,用于在Inspector工具中完成元素操作

   • Tap:点击

   • Send_keys:发送文本

   • Clear:清空

 2,Inspector工具功能介绍 

Appium Inspector界面最上面,包括一些常用的功能按钮

1.选取元素,用于获取执行元素的属性信息

2.以坐标方式进行界面中的滑动操作功能

3.以坐标方式进行点击操作功能

4.返回功能,返回到上一级捕获的界面

5.刷新功能,重新连接移动测试设备,捕获设备中最新的界面信息

6.脚本录制功能,通过操作生成JS,Java,Python,Ruby等不同语言的脚本

7.界面元素搜索功能

8.复制XML源码功能

9.退出Inspector,关闭Inspector

 

posted @ 2020-10-14 07:09  勇敢面对difficult  阅读(217)  评论(0)    收藏  举报