APP自动化测试实战之Appium介绍和环境准备

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_37216944/article/details/83721825

0X00 Appium 介绍

Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。
(1)“移动原生应用”是指那些用 iOS 或者 Android SDK 写的应用。
(2)“移动 web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。
(3)“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,我们在微信里可以查看网页,可以通过网页应用买电影票等。
重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。

0X01 Appium 的理念

为了满足移动自动化需求,Appium 遵循着一种哲学,主要有以下4条:
(1)你无需为了自动化,而重新编译或者修改你的应用。
(2)你不必局限于某种语言或者框架来写和运行测试脚本。
(3)一个移动自动化的框架不应该在接口上重复造轮子。(移动自动化的接口应该统一)
(4)无论是精神上,还是名义上,都必须开源。

0X02 Appium 概念

C/S 架构
Appium 的核心是一个 web 服务器,它提供了一套 REST 的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同 的机器上。比如我们可以只写测试代码,然后使用云服务来执行命令。
Session
自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。
Desired Capabilities
Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把 platformName 这个 capability 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。我们也可以设置 safariAllowPopups 这个 capability 为 true,确保在 Safari 自动化 session 中,我们可以使用 javascript 来打开新窗口。
Appium Server
Appium server 是用 Node.js 编写的一个服务器。我们可以用源码编译或者从 NPM 直接安装。
Appium Client
Appium Client 有很多语言库。包括 Java, Ruby, Python, PHP, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。
与其他测试框架对比

在这里插入图片描述

0X03 环境搭建

(请一路点击下一步)
1、安装appium
https://bitbucket.org/appium/appium.app/downloads/
或者
http://pan.baidu.com/s/1jGvAISu#list/path=%2F

2、安装.net(如果不能启动appium,就要安装.net环境)
http://dotnetsocial.cloudapp.net/GetDotnet?rClrVer=v4.0

3、安装node.js
https://nodejs.org/
验证是否安装成功:
在这里插入图片描述
4、安装夜神
https://www.yeshen.com/

5、安装Python(本机没Python环境则需要安装)
https://www.python.org/
6、安装Appium-Python-Client
pip install Appium-Python-Client

7、下载adt ,配置adb环境变量
32bit
http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
64bit
http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
mac
http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip

解压adt-bundle-windows-xxxx-20140702.zip 放到一个英文目录下,不要带中文。
配置:


变量名:ANDROID_HOME
变量值:D:\android\android-sdk-windows
找到path变量名—>“编辑”添加:
变量名:PATH
变量值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools


验证adb是否安装成功

在这里插入图片描述

实例验证。
启动夜神并在cmd命令行中输入adb devices 显示如下,说明有android驱动载入。
在这里插入图片描述
启动之后,在cmd下输入下面命令
adb connect 127.0.0.1:62001
adb devices
见到如下图所示就可以使用了。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/github_37216944/article/details/83721825