Appium简介
随着移动终端的普及,手机应用越来越多,也越来越重要。而作为测试 的我们也要与时俱进,努力学习手机 App 的相关测试,文章将介绍手机自动化测试框架 Appium 。 那究竟什么是 Appium 呢? 接下来我们一起来学习Python+Selenium 做自动化测试。
Appium 概述
(1) 什么是 Appium
(2) Appium 的哲学
(3) Appium 设计思想
(4) Appium 优点
(5) Appium 特点
(6) Appium 架构
Appium 在 IOS 上的架构:
Appium 在 Andiord 上的架构:
Appium 基本概念
(1) Client/Server Architecture
appium 的核心其实是一个暴露了一系列 REST API 的 server。这个 server 的功能其实很简单:监听一个端口,然后接收由 client 发送来的 command。翻译这些 command,把这些 command 转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些 command 后把执行结果返回给 appium server,appium server 再把执行结果返回给 client。
在这里 client 其实就是发起 command 的设备,一般来说就是我们代码执行的机器,执行 appium 测试代码的机器。狭义点理解,可以把握 client 理解成是代码,这些代码可以是 java/ruby/python/js 的,只要它实现了 webdriver 标准协议就可以。这样的设计思想带来了一些好处:
(2) Session
session 就是一个会话,在 webdriver/appium,你的所有工作永远都是在session start 后才可以进行的。一般来说,通过 POST /session 这个 URL,然后传入 Desired Capabilities 就可以开启 session 了。
开启 session 后,会返回一个全局唯一的 session id,以后几乎所有的请求都必须带上这个 session id,因为这个 seesion id 代表了你所打开的浏览器或者是移动设备的模拟器。
进一步思考一下,由于 session id 是全局唯一,那么在同一台机器上启动多个 session 就变成了可能,这也就是 selenium gird 所依赖的具体理论根据。
(3) Desired Capabilities
Desired Capabilities 携带了一些配置信息。从本质上讲,这个东东是key-value 形式的对象。你可以理解成是 java 里的 map,python 里的字典,ruby 里的 hash 以及 js 里的 json 对象。实际上 Desired Capabilities 在传输时就是json 对象。
Desired Capabilities 最重要的作用是告诉 server 本次测试的上下文。这次是要进行浏览器测试还是移动端测试?如果是移动端测试的话是测试android 还是 ios,如果测试 android 的话那么我们要测试哪个 app? server 的这些疑问 Desired Capabilities 都必须给予解答,否则 server 不买账,自然就无法完成移动 app 或者是浏览器的启动。
(4) Appium Server
Appium Server 就是每次我们在命令行用 appium 命令打开的东西。
(5) Appium Clients
由于原生的 webdriver api 是为 web 端设计的,因此在移动端用起来会有点不伦不类。 appium 官方提供了一套 appium client , 涵盖多种语言ruby/java/python,在我看来 ruby client 是实现最好的。在测试的时候,一般要使用这些 client 库去替换原生的 webdriver 库。这实际上不是替换,算是client 对原生 webdriver 进行了一些移动端的扩展,加入了一些方便的方法, 比如 swipe 之类,appium client 让我们可以更方便的写出可读性更好的测试用例。
(6) Appium.app, Appium.exe
appium server 的 GUI 版本,前者用在 osx 上,后者是 windows 上。可视化、不需要装 node,可以看 app 的 UI 结构是这个东东的卖点。
Appium 与 Selenium
Appium 环境搭建
学习 appium 最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于 Windows 系统下的 Android 手机端的安装流程。就像我们在用 Selenium 进行 web 自动化测试的时候一样,我们需要一个浏览器来执行测试脚本。那么移动端自动化测试,我们同样需要一部 Android 手机(手机需要链接电脑)或者 Android 模拟器。
下节我们将为给为带来Appium的环境搭建与JDK的安装与运用。
入行IT转做软件测试?就选青胜软件测试!
青胜紧跟行业发展,贴合企业人才需求,对课程进行更新迭代,创造性的推出了RACE学习模型,即认知Recognize:学习评估;还原 Analyze:名师讲解;创造Create:项目实战;卓越 Excellent:督学就业;针对大学生、跨界转行、初级工程师三大群体郑重推出全栈软件测试工程师启航班!
如果你想在软件测试这一行中能快速提升,并且可以快速入门的话可以通过我的文章来多多了解和学习!
无论你是在本行业发展受限,想零基础转行,还是刚毕业想入行软件测试,亦或是有一份基础的测试工作,但感觉技能薄弱,想要提升技能,都可以选择我们青胜软件测试!
青胜软件测试以高薪为导向,以软件测试技术体系为基础,以新技术、项目实战为双驱动,始终专注于培养与 会发展进程高度匹配、有明确 会需求的精通软件测试流程,掌握多种测试技能,并具备良好沟通表达能力、专业软件测试技术的卓越人才。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!