霍格沃兹测试开发学社

《Python测试开发进阶训练营》(随到随学!)
2023年第2期《Python全栈开发与自动化测试班》(开班在即)
报名联系weixin/qq:2314507862

干货|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.gitcd 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 本身不包含任何有关测试方法的代码,如果对底层进行修改和定制,请观看后续文章。

** _
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息

posted @   霍格沃兹测试开发学社  阅读(97)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-12-31 职场晋升“潜规则”:资深测试经理的职场忠告与经验分享
点击右上角即可分享
微信分享提示