【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

LinkedIn Bluepill:开源的大规模 iOS UI 测试工具

  • 2017-01-25
  • 本文字数:790 字

    阅读完需:约 3 分钟

LinkedIn 软件工程师 Keqiu Hu 在官方博客上介绍了该公司的Bluepill。Bluepill 使得开发人员可以在单一机器上用多种模拟器运行iOS UI 测试,目标在于提供稳定的测试工具和可扩展的测试。

LinkedIn 提出的“ 3x3 理念”设定目标为每日三次发布,实现“在代码提交与对成员可用之间不超过三个小时”。作为该理念的重要组成,Bluepill 给出了两个高度可取的特性

  • 测试平台的稳定性,主要针对 Xcode iOS 模拟器的“古怪问题”,这些问题会使测试由于模拟器自身问题而非代码问题导致失败。据 LinkedIn 统计,他们所运行的测试中有 2% 就属于这种情况。
  • 测试的可扩展性。测试的并行运行可同时覆盖多种模拟环境,可扩展性从根本上提供了这种能力。

Bluepill 借助于 CoreSimulator 解决稳定性和可扩展性问题。CoreSimulator 是 Apple 的一种未公开架构,它具有创建不同类型的设备模拟器、选择运行时版本、处理模拟器提供的通知等功能。Hu 提到,使用 CoreSimulator 实现了将 Bluepill 从 Xcode 模拟器中隔离出来,并使 Bluepill 可并行使用多种模拟器运行测试。这里 Xcode 模拟器是一种随每次 Xcode 的更新而不断进化的黑盒。

在最简单的用例中,可使用如下命令运行 Bluepill:

./bluepill -a ./Sample.app -s ./SampleAppTestScheme.xcscheme -o ./output/这个命令将会启动四个模拟器,此外还有一些可以用来定制测试环境的选项,包括使用模拟器的数量、运行时环境、失败测试时允许重试的次数、测试被卡住时的等待时间等。

Bluepill 采用 BSD-2 许可在 GitHub 上开源提供。对于不打算自己从源代码构建的开发人员,Bluepill 也提供了二进制版本

查看英文原文: Bluepill is LinkedIn’s Open-source Tool for iOS UI Testing at Scale


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-01-25 18:003280
用户头像

发布了 227 篇内容, 共 71.0 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

把主机放在家里

D

centos Homework

[安利] 可能会让你爱上书写的工具组合!

猴哥一一 cium

Typora markdown markdown编辑器 玩转写作平台

在项目中随手把haseMap改成了currenHaseMap差点被公司给开除了

java金融

Java 后端 BigDecimal金额 Arrays.asList

从拼多多突破阿里和京东两大巨头绞杀,市值破千亿美金来看职业价值链

非著名程序员

程序员 程序人生 职业规划 职业成长

架构师训练营第三周学习总结

张明森

SpringIOC 是依赖倒置吗?

yupi

软件设计原则

yupi

如何做好职场印象管理?

石云升

职场 印象管理 职场形象

Java操作Excel竟如此简单

生命在于折腾

Java EasyExcel

由一次管理后台定时推送功能引发的对 RabbitMQ 延迟队列的思考 (二)

LSJ

Java RabbitMQ 延迟队列 优先级队列

一款跨平台免费的开源 SQL 编辑器和数据库管理器!

JackTian

数据库 sql GitHub 开源 实用工具

依赖倒置-好莱坞原则

yupi

Kafka面试题:基础27问,必须都会的呀!

Java小咖秀

大数据 kafka 分布式 队列 延时消息

策略模式解析

Seven七哥

设计模式 策略模式

啥是CPU缓存?又如何提高缓存命中率呢?

八两

三流程序员大晚上不睡觉,竟然在做这件事

Janenesome

写作平台 碎碎念

终于有人把 java代理 讲清楚了,万字详解!

java金融

Java jdk 后端 动态代理 cglib

ArrayList哪种循环效率更好你真的清楚吗

java金融

Java 后端 ArrayList 循环效率 方式

Java世界的“烂”包管理

申扬科技

maven Git Submodule

游戏夜读 | RPG的美式和日式

game1night

golang-pprof实战笔记

卓丁

pprof 性能分析 Go 语言

架构师训练营 - 第2周学习总结

红了哟

区块链系列教程之:比特币的钱包与交易

程序那些事

比特币 区块链 智能合约 钱包 交易

[架构师训练营] 2 依赖倒置

悬浮

效率思维模式与Zombie Scrum

Worktile

敏捷开发

能走出来的,都不叫困境

zkback

优化工程师逻辑视角下的微信“拍一拍”功能

Earth_Polarbear

人工智能 微信 系统工程 优化逻辑

【Golang runtime学习笔记-启动过程分析】

卓丁

初始化 runtime 汇编 Go 语言

实现一个redis命令--nonzerodecr

老胡爱分享

redis 源码分析 源码阅读

Git 基础知识学习

LeoBing

大话设计模式 | 3. SOLID原则

Puran

设计模式

LinkedIn Bluepill:开源的大规模iOS UI测试工具_移动_Sergio De Simone_InfoQ精选文章