app自动化测试之Appium 源码分析
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 源码分析相关推荐
- 干货|app自动化测试之Appium 源码修改定制分析
Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol ...
- 手机自动化测试:Appium源码分析之跟踪代码分析四 1
手机自动化测试:Appium源码分析之跟踪代码分析四 控制器模块 // Appium webserver controller methods // https://github.com/hugs/a ...
- 手机自动化测试:appium源码分析之bootstrap八
手机自动化测试:appium源码分析之bootstrap八 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...
- 手机自动化测试:appium源码分析之bootstrap十二
手机自动化测试:appium源码分析之bootstrap十二 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请 ...
- 手机自动化测试:appium源码分析之bootstrap七
手机自动化测试:appium源码分析之bootstrap七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开发 ...
- |app自动化测试之Appium问题分析及定位
Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol ...
- 干货|app自动化测试之Appium 原理 与 JsonWP 协议分析
想要使用 Appium 进行测试,那么就一定要先了解Appium的原理.Appium 不仅能够实现移动端的 JSONWP,并且延伸到了 Selenium 的 JSONWP,它能够控制不同移动设备的行为 ...
- app自动化测试之Appium问题分析及定位
使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题. Appium Server日志-开启服务 通过命令行的方式启 ...
- 干货|app自动化测试之Appium WebView 技术原理
混合应用测试或微信小程序测试,都会涉及到 WebView 组件,这节内容将分析一下 WebView 的技术原理.首先通过日志分析查看 Appium 的运行过程. WebView日志分析 要想查看 Ch ...
最新文章
- vista——最恰当的中文译名应该是“喂死它”
- VTK:Points之MaskPointsFilter
- poll和死锁_计算机基础知识
- docker安装mysql数据库映射_Docker安装mysql数据库
- 中小学计算机听课记录表,小学数学听课记录范文表格
- 【运动学】基于matlab平抛小球地面跳跃规律【含Matlab源码 981期】
- 分区表修复工具--DISKFIX
- python调节电脑音量_python如何调节音量大小
- (快速下载)百度 apollo 开源代码
- 解决微信支付商户平台安全控件无法启用(Mac/windows)
- 线下广告投放方案_线下推广方案
- Part2 正交、行列式、特征值
- ClickME 隐私策略
- 手机banner图片自适应手机宽高定位
- 【历史上的今天】6 月 5 日:洛夫莱斯和巴贝奇相遇;公钥密码学先驱诞生;函数语言设计先驱出生
- Unity3d+百度AI 实现摄像头画面实时手势识别
- 【应用】1200PLC实现三层电梯模拟控制
- 啥是预乘?——Nuke中的Premult(预乘)和Unpremult(预除)
- 一个正经的前端学习 开源 仓库(阶段十五)
- java jce配置_BouncyCastle JCE 的安装配置及在java中的使用
热门文章
- 天天动听 android,天天动听手机版
- python elasticsearch模块_Python3 操作 elasticsearch
- CTF php 序列化,CTF-WEB: php反序列化
- Halcon基于形状的几何定位函数说明
- MFC:ListControl用法
- VS中warning MSB8012:TargetPath与 Linker 的 OutputFile 属性值不匹配
- 拔染印花的主要特点和工艺技术
- 异构SOA系统架构之Asp.net实现(兼容dubbo)
- [转]一张图帮你搞定职业规划
- IIS 7.0 SSL 部署指南