appium是什么?有什么用

我们学习的移动应用自动化,是基于appium这样的一个自动化框架的。

Appium是一个开源、跨平台(测试程序跨平台、支持多平台上的app测试) 、

多语言支持的(开发语言)移动应用 自动化工具

特点

它的测试对象移动app , 包括了多种类型的移动app

原生app,混合(Hybrid)app,移动web app;

所谓原生app ,就是专门针对某一类移动设备(比如苹果、安卓)而开发的,所有界面和代码都是专门为平台设计的。

而混合app主要是指 它的一部分是原生界面和代码,而另一部分是内嵌web app 。 这个大家应该有体会,可以打开网页浏览的app都是 混合app,

比如微信、支付宝、美团、移动营业厅、开发者头条等。

比如微信的sms界面是原生,原生代码实现的。

而打开某个朋友圈,或者别人发来的的链接部分则是 web部分,内嵌了一个浏览器内核,由浏览器内核实现的。

现在混合型app很多,稍微功能全一些的都需要具备网页浏览的功能。

而 web app 则完全是用手机浏览器里打开的一个网址

,web app 只能运行在浏览器里,靠浏览器解释执行。资源一般都在网络上。

它其实就是一个触屏版的网站

Appium对这3种类型的app的测试都支持。

测试对象App运行平台包括:

  1. iOS (就是苹果手机、平板、甚至iWatch等移动设备上运行的app)
  2. Android(就是安卓手机、平板、等移动设备上运行的app)
  3. Windows (就是Widnows手机、平板等移动设备上运行的app,但是这种平台使用人数目前太少,少到基本可以忽略不计了,)
  4. FirefoxOS (更少,更加可以忽略不计了)

测试对象App运行环境:

  1. 真实设备
  2. 模拟器

真实设备大家都知道, 就是苹果安卓的手机、平板等移动设备

而模拟器 则是通过在PC或者Mac电脑上的软件虚拟的  苹果安卓的手机、平板等移动设备。 主要是方便我们测试用的。

测试程序语言:

appium支持多种程序语言开发测试程序,基本上Selenium支持的开发语言,appium都支持。

Python、java、Ruby、js、php、c#

测试程序运行平台:

appium支持测试程序运行在多种平台上

Windows、Linux、Mac OS

但是要注意的是,如果测试的是iOS的应用,

虽然测试程序本身是可以运行在所有平台的,

但是有appium server必须要运行在苹果的机器上,比如笔记本MacBook,或者台式机 iMac。因为对苹果设备的自动化,appium依赖苹果的自动化框架,只能运行在苹果机器上。

自动化原理

Appium自动化架构和Selenium有很大的相似之处

包含了 3个主体部分

Test script(我们的测试程序,是测试逻辑的实现部分。就像以前我们的Selenium自动化脚本。

而且和Selenium一样,可以使用多种语言,Appium 客户端库也支持多种语言。

一般运行在pc、上,或者苹果笔记本、台式机)

Appium Server :这是一个用 javascript代码实现的程序。 是运行在 Node.js 里面的。

被测试app:运行在真实设备或者模拟器中

这个测试系统,运行起来,交互关系是这样的

首先:

我们开发的的自动化程序(Test script) 运行各种测试脚本

告诉  Appium Server,我们要做什么操作

Appium Server接收到 测试程序的命令后, 又是怎么真正的控制移动设备上的app的呢?

原来appium 是自己开发一个自动化模块(或者叫应用),安装在移动设备中的。

就行一个木马

appium开发的木马,通过使用 各个移动APP开发平台 自带的 自动化框架来实现的

appium在移动设备上会注入测试模块,测试模块会调用这些自动化框架提供库,从而控制设备和操作app。

Appium简介与原理相关推荐

  1. APPium简介及安装

    1 APPium简介 1. 什么是APPium? APPium是一个开源测试自动化框架,适用于原生.混合或移动Web应用程序的自动化测试工具. APPium使用WebDriver协议驱动iOS.And ...

  2. DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)

    DL之CNN:卷积神经网络算法简介之原理简介--CNN网络的3D可视化(LeNet-5为例可视化) CNN网络的3D可视化 3D可视化地址:http://scs.ryerson.ca/~aharley ...

  3. DL之Perceptron:Perceptron感知器(感知机/多层感知机/人工神经元)的简介、原理、案例应用(相关配图)之详细攻略

    DL之Perceptron:Perceptron感知器(感知机/多层感知机/人工神经元)的简介.原理.案例应用(相关配图)之详细攻略 目录 Perceptron的简介.原理 多层感知机 实现代码 案例 ...

  4. DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图)、七大层级结构(动态图详解卷积/池化+方块法理解卷积运算)、CNN各层作用及其可视化等之详细攻略

    DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图).七大层级结构(动态图详解卷积/池化+方块法理解卷积运算).CNN各层作用及其可视化等之详细攻略 目录 CNN 的层级结构及相关概念 ...

  5. Mybatis简介与原理

    转载自  Mybatis简介与原理 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到 ...

  6. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

  7. IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解

    IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解 0.前言 一.光学传感器模块: 1. 光敏传感器模块: 2. 红外避障模块 3. 循迹传感器模块 4. U型光电传感器模块 5. 红外接收模 ...

  8. JDBC简介及原理和使用介绍

    JDBC简介及原理和使用介绍 JDBC简介 jdbc概述 ​ Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据 ...

  9. WebShell箱子简介与原理

    今天继续给大家介绍渗透测试相关知识,本文主要内容是WebShell箱子简介与原理. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严 ...

最新文章

  1. DC-leetcode215数组中的第k大元素
  2. pytorch Tensor操作(二)
  3. js 判断移动端还是pc端,ios或者android
  4. java生成图片验证码
  5. [Android]大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK接口说明...
  6. 使用Sequelize实现文章和评论的一对多关系并实现评论的按时间排序
  7. Android开启双摄像头
  8. RxJava2.0_1:基础学习和理解
  9. Java的学习(下)
  10. 【NOIP2015模拟10.28B组】终章-剑之魂
  11. 分段函数的期望和方差_概率论中数学期望什么时候不存在?
  12. 解决photoshop菜单卡顿,闪动,停顿问题
  13. 少儿编程Scratch学习教程4--基本操作(一)特效例子
  14. 8021什么意思_违章代码8021是什么意思
  15. 解析BroadcastReceiver的注册、发送与接收过程
  16. 《走进人工智能》学习笔记
  17. 宏杉科技的第一,不是魔术变出来的
  18. 什么是监控系统云台?
  19. php生成网名,制作网名的软件
  20. 北邮22信通:(2)第三章单链表

热门文章

  1. win10设置开机启动项_华硕主板如何设置开机第一启动项方法大全
  2. javascript实现图片上传实时显示上传图片
  3. dw网页设计期末设计一个网页_Dw网页设计制作九个小技巧,你都会吗?
  4. webpack配置entry详解
  5. 新学年,推荐一份GIS书单给爱学习的你
  6. 《程序员升职记》8.零保护行动
  7. 623.三个数的最大乘积
  8. Python爬虫---爬虫介绍,实战案例
  9. 大数据周会-本周学习内容总结011
  10. Live555源码分析