1、APPium自动化测试架构

APPium是一个C/S架构的自动化测试框架,APPium的核心其实是一个暴露了一系列REST API的server。(也就是Appium的核心是一个提供了一组REST API的Web服务器。)
这个server的功能其实很简单:监听一个端口,然后接收由client(客户端)发送来的command(命令)。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后,把执行结果返回给appium server,appium server再把执行结果返回给client。
在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js等编写的,只要它实现了webdriver标准协议就可以。
这样的设计思想带来了一些好处:

  1. 可以带来多语言的支持;
  2. 可以把server放在任意机器上,哪怕是云服务器都可以;
    (是的,appium和webdriver天生适合云测试)

2、APPium架构图:

3、Session

  • session就是一个会话,在webdriver/appium,你的所有工作永远都是在session start后才可以进行的。
  • 一般来说,通过POST /session这个URL,然后传入Desired Capabilities(一个JSON对象)就可以开启session了。
  • 开启session后,会返回一个全局唯一的session id,以后几乎所有的请求都必须带上这个session id,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。
  • 进一步思考一下,由于session id是全局唯一,那么在同一台机器上启动多个session就变成了可能,这也就是selenium gird所依赖的具体理论根据。

4、Desired Capabilities

Desired capabilities是发送到Appium服务端的一组键和值(即映射或哈希),其中携带了一些配置信息。
从本质上讲,这个东东是key-value形式的对象。你可以理解成是java里的map,python里的字典,ruby里的hash以及js里的json对象。实际上Desired Capabilities在传输时就是json对象。
Desired Capabilities最重要的作用是告诉Appium server本次测试的上下文。

  • 这次是要进行浏览器测试还是移动端测试?
  • 如果是移动端测试的话是测试android还是ios?
  • 如果测试android的话那么我们要测试哪个app?

Appium server的这些疑问Desired Capabilities都必须给予解答,否则Appium server不买账,自然就无法完成移动app或者是浏览器的启动。
具体说明如下:
For example, we might set the platformName capability to iOS to tell Appium that we want an iOS session, rather than an Android one. Or we might set the safariAllowPopupscapability to true in order to ensure that, during a Safari automation session, we’re allowed to use JavaScript to open up new windows. See the capabilities doc for the complete list of capabilities available for Appium
翻译如下:
例如,我们可以将platformName功能设置为iOS,以告知Appium我们想要一个iOS会话,而不是Android会话。 或者,我们可以将safariAllowPopupscapability设置为true,以确保在Safari自动化会话期间,允许我们使用JavaScript打开新窗口。 请参阅功能文档以获取可用于Appium的功能的完整列表。

5、Appium Server

这就是每次我们在命令行用appium命令打开的东西。
Appium server 是用 Node.js 写的。我们可以用源码编译或者从 NPM 直接安装。
安装方式
$ npm install -g appium $ appium
说明:

  • Appium 服务端有很多语言库 Java, Ruby, Python, PHP, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。
  • 当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。
    提示:我们不推荐使用这种方式进行安装Appium,推荐使用下面Appium Desktop的方式进行安装。

6、Appium Clients

由于原生的webdriver api是为web端设计的,因此在移动端用起来会有点不伦不类。appium官方提供了一套appium client,涵盖多种语言ruby/java/python,在我看来ruby client是实现最好的。
在测试的时候,一般要使用这些client库去替换原生的webdriver库。
这实际上不是替换,算是client对原生webdriver进行了一些移动端的扩展,加入了一些方便的方法,appium client让我们可以更方便的写出可读性更好的测试用例。
Appium的客户端库下载地址:http://appium.io/downloads.html

7、Appium Desktop

Appium Desktop是在Appium Server上封装成一个有图形界面的服务端,可以在任何平台下载安装。
它与运行Appium Server所需的所有内容捆绑在一起,因此不需要担心Node环境。
它还附带了一个检查器,用来查看应用程序的层次结构等。在编写测试时,这会派上用场。

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

Appium自动化测试基础 — APPium基本原理相关推荐

  1. Appium自动化测试基础 — APPium安装(一)

    三.APPium安装 我们要使用APPium测试框架,首先就需要安装APPium服务,Devices代表我们要链接的手机,Appium Client为我们写代码的客户端(也就是测试脚本,需要用哪个脚本 ...

  2. appium的python教程_移动App Appium自动化测试教程Appium+Python 【2018年新】_IT教程网...

    资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 1-3 移 ...

  3. pythonapp自动化_移动App Appium自动化测试教程Appium+Python 【2018年新】

    资源介绍 资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 ...

  4. appium python自动测试 百度网盘_S35 移动App Appium自动化测试教程Appium+Python 百度云...

    Python视频教程名称:移动App Appium自动化测试教程Appium+Python  Python视频教程 [IT视频教程网] it教程 ( l  w1 F: L" `, v 2 c ...

  5. Appium自动化测试基础 — 补充:Desired Capabilities参数介绍

    下面介绍一下Desired capabilities的参数: 提示: Desired capabilities的参数非常的多,但是在我们实际的工作用,常用的也就是其中的几个,我们没有必要全部都记下来, ...

  6. 史上最全 Appium 自动化测试从基础到框架实战精华学习笔记(一)

    本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 对测试人来说,Appium 是非常重要的一个开源跨平台自动化测试工具,它允许测试人员在不同的平台(iOS.Android 等)使用同一套 API ...

  7. Android自动化测试基础知识——Appium

    目录 Appium 理念 使用Appium进行自动化测试有两个好处 Appium架构 Appium API Appium 理念 Appium是基于以下的四个理念设计来满足移动平台测试自动化的要求的: ...

  8. 虫师python appium自动化测试书_Appium移动自动化测试(一)--安装Appium

    这套教程年久失修,问题的人也比较多,于是,我重新整理了一套appium入门教程. ---------2017.11.16 更新----------------------- Appium 自动化测试是 ...

  9. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

最新文章

  1. Tensorflow源码解析5 -- 图的边 - Tensor
  2. Contest Leaderboard(分组、聚合、连接)
  3. MVC3.0删除数据的时候给提示信息
  4. Qt 如何处理密集型耗时的事情
  5. leetcode 316. 去除重复字母(单调栈)
  6. Hbuilder 左侧项目栏文件打开方式(单击?双击?) - 设置篇
  7. Azkaban工作流调度器(1)--azkaban的安装
  8. QT_继承ApplicationWindow控件的C++与QML交互
  9. Git用命令提交代码并合并
  10. 课设-最小生成树问题
  11. python的算术表达式_python算术表达式
  12. Kotlin的协程:挂起函数
  13. 如何改变computed执行_皓儿日记2019-11-09 《执行力》读书笔记
  14. java 汉字转拼音工具_java汉字转拼音工具类
  15. 《红楼梦》-正文第三十九回名師誦読文稿
  16. 数据分析——Pandas(进阶)
  17. 计算机英语长句,英语长句分析经典100句.doc
  18. pdf转换为ppt最佳转换方法
  19. 无源蜂鸣器与播放音乐(总结)
  20. matlab线性构造,基于MATLAB的线性构造信息提取研究

热门文章

  1. ANSI、GBK、Unicode编码简介
  2. h264视频解码显示花屏问题集
  3. 第五章 - 分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战一)
  4. 大学物理(下)知识点总结
  5. 【05】拉普拉斯变换的收敛域与逆变换_传函极点意义
  6. R语言画词云图——建模常用软件
  7. laravel高校毕业实习管理系统
  8. 汉字的内码和区位码与显示汉字原理
  9. (15)腾讯云微搭:云开发为底层支撑的低代码应用/表单开发平台
  10. 计算机毕业设计SSM宠物管理系统【附源码数据库】