干货|app自动化测试之Appium 源码分析

143 阅读1分钟

Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。 官方提供更详细的 Appium 结构说明:appium.io/docs/en/con…

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
                
                ```
                
                修改为
                ```
                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 的启动日志会发生改变:
                                ![](https://ceshiren.com/uploads/default/original/3X/5/c/5cad20d429e6d67a39cb8f40384d4ae9a929b936.png)
                                值得注意的是, Appium 本身不包含任何有关测试方法的代码,如果对底层进行修改和定制,请观看后续文章。
                                
                                
                                内容全面升级,4 个月 20+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+,年薪50W+)!直推 BAT 名企测试经理,普遍涨薪 50%+!
                                
                                ### 
                                ⬇️ 点击“阅读原文”,提升测试核心竞争力!
                                [原文链接](https://mp.weixin.qq.com/s?__biz=MzU3NDM4ODEzMg==&mid=2247497910&idx=1&sn=6174bb2126d41adfb55c15cef46fa253&chksm=fd319a7dca46136bb1becf050cd4a26c41483641bf566d00d208178faab4f91cc8ccfad3ff03#rd) 
                                
                                [更多技术文章](https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=juejin&timestamp=1662310800&author=Muller)