appium是一个开源的移动端自动化测试框架,可以测试原生的、混合的以及移动端的web项目,appium是跨平台的,可以运行在osx、windows以及linux桌面系统上,用来测试ios、android应用

Selenium

2004年,Thoughtworks的员工Jason Huggins编写了一个名为JavaScriptTestRunner的测试工具

后来多人修改架构为独立服务模式,开发并推出了Selenium RC和Selenium-IDE

Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样

这个工具的主要功能包括:

  • 测试与浏览器的兼容性

测试你的应用程序看是否能够很好的工作在不同浏览器和操作系统之上

  • 测试系统功能

创建回归测试检验软件功能和用户需求

框架底层使用JavaScript模拟真实用户对浏览器进行操作

1.x版本的Selenium需要启动一个Server,将操作Web元素的API调用转化为一段段Javascript,然后在浏览器中注入这段Javascript

但是这样会有缺点

  1. 速度慢
  2. 依赖于浏览器对注入的Javascript的正确解释

于是有了2.x版本的Selenium版本

2.x版本的Selenium整合了webdriver和原来的Selenium,把多个浏览器原生的API封装成一套更加面向对象的Selenium webdriver API

这样做的好处是速度提高,且调用的稳定性交给了浏览器

2.x的Selenium也可以叫Webdriver

Appium

为什么讲appium前,提到selenium呢?

Appium是基于webdriver协议添加了对移动设备自动化api扩展而成的,这样做的好处是避免重复造轮子

appium的框架是什么样的?

appium使用client-server架构,appium-client以脚本的形式,支持多种语言

appium-server需要安装appium-server程序,用来监听端口上来自appium-client的命令

appium-server已经很久没更新过版本了,目前可以用appium-desktop代替

UiAutomator是谷歌推出的一款用Java编写的UI测试框架,可以使用UiAutomator框架提供的API来对安卓系统进行一系列的自动化测试操作

Bootstrap是Appium在初始化的时推送到Android手机上的一个UiAutomator测试脚本,该脚本的唯一一个测试方法所做的事情是在手机端开启一个SocketServer(通信模块),用来监听Appium从PC端过来的命令发送给UiAutomator来执行处理

工作原理

appium-server启动并监听在某个端口,接收测试脚本发来的命令请求,再将请求发送给中间件Bootstrap.jar,中间件Bootstrap.jar会把appium的命令转换成UiAutomator的命令,发送给UiAutomator,UiAutomator对android系统进行操作

安装

更多内容,可以在汽车网络诊断通信上看到

史上最全-Appium自动化测试框架相关推荐

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

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

  2. 史上最全 Appium 自动化测试从入门到框架实战精华学习笔记(二)

    本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助. Appium 自动化测试从基础到框架实战 App ...

  3. 史上最全的集合框架讲解 ----- Java 集合框架(3)---- Map 相关类最全解析

    引言 好了,步入正题,上篇文章Java 集合框架(2)---- List 相关类解析中我们一起看了一下 List 接口的相关具体类(ArrayList.LinkedList-.),这篇开始我们开始探索 ...

  4. 史上最全的Jackson框架使用教程

    简单介绍 别再使用 fastJson 了!漏洞天天报,Bug 修不完.快来拥抱 Jackson 吧! Jackson 是用来序列化和反序列化 json 的 Java 的开源框架.Spring MVC ...

  5. java jackson教程_史上最全的Jackson框架使用教程

    简单介绍 别再使用 fastJson 了!漏洞天天报,Bug 修不完.快来拥抱 Jackson 吧! Jackson 是用来序列化和反序列化 json 的 Java 的开源框架.Spring MVC ...

  6. 史上最全的MonkeyRunner自动化测试从入门到精通(1)

    史上最全的MonkeyRunner自动化测试从入门到精通(1) 史上最全的MonkeyRunner自动化测试从入门到精通(2) 史上最全的MonkeyRunner自动化测试从入门到精通(3) 史上最全 ...

  7. MAC中在eclipse luna上搭建移动平台自动化测试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

    这几天因为原来在用的hp laptop的电池坏掉了,机器一不小心就断电,所以只能花时间在自己的mackbook pro上重新搭建整套环境,大家都知道搭建环境是个很琐碎需要耐心的事情,特别是当你搭建的安 ...

  8. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发...

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文   http ...

  9. java spring框架 注解_史上最全的java spring注解

    史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...

最新文章

  1. 【Mac】解决「无法将 chromedriver 移动到 /usr/bin 目录下」问题
  2. Lambda and Anonymous Classes
  3. Python 3.4.4 学习笔记(004)python manuals/the python tutorial -- 3. An Informal Introduction to Python...
  4. 分治算法-01连续子序列的最大和问题
  5. java swing运行没反应_java – 无法从命令行运行swing
  6. (译)如何使用cocos2d制作基于tile地图的游戏教程:第一部分
  7. form表单提交,后台实体类接收转义问题 解决方案
  8. JAVA重载和重写的区别?
  9. NSRegularExpression iOS自带的正则表达式
  10. 【转贴】ListView控件学习系列2-编辑ListView
  11. Oracle官网登录下载资源账号密码共享
  12. mid=(left+right)1什么含义
  13. 296.deepin下载安装、root改密、cpu不降频、修改快捷键、创建启动器快捷方式、win文件访问、直接进win无deepin启动项...
  14. Android图像压缩库Tiny更新优化 解决X509TrustManager问题,重新编译libjpeg-turbo支持cpu全架构
  15. VS2010中打开项目中的Winform界面报“This method explicitly users CAS policy,which has been obsoleted...”(续)
  16. win10防火墙不能自动启动
  17. tabbaritem 图片太大解决方案
  18. Git Tower 3.2 - 最好用的代码管理工具
  19. DNS中cname记录的作用
  20. Linux之jkd、tomcat、mysql安装

热门文章

  1. 浅谈设计模式之单例模式
  2. c语言题库及详解答案,计算机二级c语言题库及答案
  3. 计算机专业英语读写比赛,四年级英语读写大赛lpar;初赛rpar;
  4. pjsip php,pjsip 搭建 sip服务器
  5. SAS学习1(总体介绍以及一些程序例子)
  6. 头脑风暴:当我分析了我的经历后
  7. 第05课:面向非结构化数据转换的词袋和词向量模型
  8. mysql optimizing_读Effective Mysql:optimizing SQL Statements 笔记
  9. 计算机网络-谢希仁-第7版 第6章 应用层
  10. 求一个数取log2的较小的整数 Ilog2