Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。

官方提供更详细的 Appium 结构说明:https://appium.io/docs/en/contributing-to-appium/appium-packages/

Appium 原理

不同平台(如 Android,iOS)采用不同的运行和交互方式。Appium 可以创建并管理多个 WebDriver Session 来和不同的平台交互。

以下几步可以编译构建 Appium 源码:

// clone appium 源码
git clone https://github.com/appium/appium.git
cd appium
// 安装项目的依赖
npm install
// 编译
npm run build
// 运行
node .

Appium lib 目录包含了核心代码。

比如 main.js 中包含 Appium 的启动语句:

async function logStartupInfo (parser, args) {let welcome = `Welcome to Appium v${APPIUM_VER}`;let appiumRev = await getGitRev();if (appiumRev) {welcome += ` (REV ${appiumRev})`;}logger.info(welcome);let showArgs = getNonD

如果简单修改,将 Welcom to Appium 修改为 hello

async function logStartupInfo (parser, args) {let welcome = `hello v${APPIUM_VER}`;let appiumRev = await getGitRev();if (appiumRev) {welcome += ` (REV ${appiumRev})`;}logger.info(welcome);let showArgs = getNonD

编译后 Appium Server 的启动日志会发生改变:

值得注意的是, Appium 本身不包含任何有关测试方法的代码,如果对底层进行修改和定制,请观看后续文章。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

app自动化测试之Appium 源码分析相关推荐

  1. 干货|app自动化测试之Appium 源码修改定制分析

    Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol ...

  2. 手机自动化测试:Appium源码分析之跟踪代码分析四 1

    手机自动化测试:Appium源码分析之跟踪代码分析四 控制器模块 // Appium webserver controller methods // https://github.com/hugs/a ...

  3. 手机自动化测试:appium源码分析之bootstrap八

    手机自动化测试:appium源码分析之bootstrap八 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...

  4. 手机自动化测试:appium源码分析之bootstrap十二

    手机自动化测试:appium源码分析之bootstrap十二 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请 ...

  5. 手机自动化测试:appium源码分析之bootstrap七

    手机自动化测试:appium源码分析之bootstrap七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开发 ...

  6. |app自动化测试之Appium问题分析及定位

    Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol ...

  7. 干货|app自动化测试之Appium 原理 与 JsonWP 协议分析

    想要使用 Appium 进行测试,那么就一定要先了解Appium的原理.Appium 不仅能够实现移动端的 JSONWP,并且延伸到了 Selenium 的 JSONWP,它能够控制不同移动设备的行为 ...

  8. app自动化测试之Appium问题分析及定位

    使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题. Appium Server日志-开启服务 通过命令行的方式启 ...

  9. 干货|app自动化测试之Appium WebView 技术原理

    混合应用测试或微信小程序测试,都会涉及到 WebView 组件,这节内容将分析一下 WebView 的技术原理.首先通过日志分析查看 Appium 的运行过程. WebView日志分析 要想查看 Ch ...

最新文章

  1. vista——最恰当的中文译名应该是“喂死它”
  2. VTK:Points之MaskPointsFilter
  3. poll和死锁_计算机基础知识
  4. docker安装mysql数据库映射_Docker安装mysql数据库
  5. 中小学计算机听课记录表,小学数学听课记录范文表格
  6. 【运动学】基于matlab平抛小球地面跳跃规律【含Matlab源码 981期】
  7. 分区表修复工具--DISKFIX
  8. python调节电脑音量_python如何调节音量大小
  9. (快速下载)百度 apollo 开源代码
  10. 解决微信支付商户平台安全控件无法启用(Mac/windows)
  11. 线下广告投放方案_线下推广方案
  12. Part2 正交、行列式、特征值
  13. ClickME 隐私策略
  14. 手机banner图片自适应手机宽高定位
  15. 【历史上的今天】6 月 5 日:洛夫莱斯和巴贝奇相遇;公钥密码学先驱诞生;函数语言设计先驱出生
  16. Unity3d+百度AI 实现摄像头画面实时手势识别
  17. 【应用】1200PLC实现三层电梯模拟控制
  18. 啥是预乘?——Nuke中的Premult(预乘)和Unpremult(预除)
  19. 一个正经的前端学习 开源 仓库(阶段十五)
  20. java jce配置_BouncyCastle JCE 的安装配置及在java中的使用

热门文章

  1. 天天动听 android,天天动听手机版
  2. python elasticsearch模块_Python3 操作 elasticsearch
  3. CTF php 序列化,CTF-WEB: php反序列化
  4. Halcon基于形状的几何定位函数说明
  5. MFC:ListControl用法
  6. VS中warning MSB8012:TargetPath与 Linker 的 OutputFile 属性值不匹配
  7. 拔染印花的主要特点和工艺技术
  8. 异构SOA系统架构之Asp.net实现(兼容dubbo)
  9. [转]一张图帮你搞定职业规划
  10. IIS 7.0 SSL 部署指南