2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:003898
用户头像

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

关注

评论

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

乘风人脸识别来了,企业能得到什么?

ToB行业头条

人工智能 人脸识别 百度大脑

有它的加持,单机玩转百亿大数据不是梦!

易观大数据

3D渲染集群,你了解多少?

华为云开发者联盟

容器 华为云 集群 3D渲染 3D模型

游戏运营方法论

石云升

游戏化运营 运营创新

用Emoji解释编程语言中的map、filter、reduce

wangkx

Python Python PEP

悬挂引用是如何被Rust消灭的?

袁承兴

rust 内存模型 指针 引用 泛型

大数据思维与运用

石云升

大数据 数据建模 数据驱动

兼具艺术情怀和舒适旅居体验,木莲庄做了什么

InfoQ_967a83c6d0d7

ARTS 挑战打卡第十五周(200817-200823)

老胡爱分享

ARTS 打卡计划

云中谁寄锦书来,免费生成一封七夕情书吧

郭旭东

阿里云 七夕 云效

SpreadJS 纯前端表格控件应用案例:实验室信息化管理系统

葡萄城技术团队

阿里为什么推荐使用LongAdder,而不是volatile?

王磊

Java 性能 volatile

Tencent AI Lab 日常实习生招聘

InfoQ_d00afcd122a8

招聘

Python中的global关键字的用法以及如何设置项目级的Global变量

陈磊@Criss

SpreadJS 纯前端表格控件应用案例:PtLims云平台

葡萄城技术团队

oeasy教你玩转linux010104灵魂之问whatis

o

SpreadJS 纯前端表格控件应用案例:资料填报系统

葡萄城技术团队

PostgreSQL函数、索引和视图操作Demo展示

wangkx

postgresql

ARTS 挑战打卡第十四周(200810-200816)

老胡爱分享

ARTS 打卡计划

工作就是解决一个又一个问题

escray

学习 面试

话题讨论 | 作为一名程序员,沟通能力是否重要?

InfoQ写作社区官方

程序员 写作平台 话题讨论

永续合约交易系统源码开发,合约交易所开发

13530558032

从“人居美学”的理念出发,木莲庄酒店很不一样

InfoQ_967a83c6d0d7

SpreadJS 纯前端表格控件应用案例:物业行业全面预算管理系统

葡萄城技术团队

青山不改,绿水长流

escray

学习 面试

CECBC区块链专委会副主任吴桐主讲成都市委宣传部区块链和数字

CECBC

区块链 数字货币

为什么会出现零代码开发平台?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

区块链承兑商支付系统开发,USDT支付软件搭建

13530558032

一键超频 双C Carry,普通用户如何挖潜英特尔十代酷睿?

E科讯

Python3 单例模式

wangkx

Python Singleton

Java中的volatile关键字

wangkx

Java volatile

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