自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Bluepill:LinkedIn開源的iOS并行UI測試工具

移動開發(fā) iOS
LinkedIn的移動團隊在研發(fā)中提出過一個叫“3x3哲學(xué)”的理念,它意為設(shè)定目標(biāo)每天發(fā)布三次,在代碼提交到對團隊成員可用之間不超過三個小時。這對持續(xù)交付提出了很大的挑戰(zhàn)。UI測試作為持續(xù)交付的一部分,是非常耗時的,你通常需要測試所有主流系統(tǒng)版本之后才能發(fā)布。Bluepill就是為了解決這個問題而誕生的。

[[182653]]

前不久,LinkedIn在官方博客介紹了該公司的***開源項目Bluepill。Bluepill使得開發(fā)人員可以在單一機器上同時用多種模擬器運行iOS UI測試,目標(biāo)在于提供穩(wěn)定的測試工具和可擴展的測試。

它的牛逼之處在于:

在一臺機器上同時啟動多個iOS模擬器,自動化運行多個UI測試并給出每一個測試的測試報告。

更直觀點,可以看官方的Demo截圖:

 

 

 

 

可以看到圖中足足同時運行了12個模擬器,可以覆蓋目前幾乎所有主流iOS版本了。

為何研發(fā)Bluepill

LinkedIn的移動團隊在研發(fā)中提出過一個叫“3x3哲學(xué)”的理念,它意為設(shè)定目標(biāo)每天發(fā)布三次,在代碼提交到對團隊成員可用之間不超過三個小時。這對持續(xù)交付提出了很大的挑戰(zhàn)。

UI測試作為持續(xù)交付的一部分,是非常耗時的,你通常需要測試所有主流系統(tǒng)版本之后才能發(fā)布。Bluepill就是為了解決這個問題而誕生的。

為了達成3x3的目標(biāo),Bluepill給出了兩個特性:

測試平臺的穩(wěn)定性,主要針對Xcode iOS模擬器的“古怪問題”,有時候測試失敗不是因為代碼有問題,而是模擬器不給力,跑不起來或卡住了。據(jù)LinkedIn統(tǒng)計,他們所運行的測試中有2%就屬于這種情況。

測試的可擴展性。測試的并行運行可同時覆蓋多種模擬環(huán)境,可擴展性從根本上提供了這種能力。

Bluepill的黑魔法

之前,LinkedIn團隊嘗試在Facebook開源的xctool的基礎(chǔ)上開發(fā)并行測試工具,結(jié)果xctool停止開發(fā)和維護了,LinkedIn的工程師在一番調(diào)研后忍痛放棄開始自研。

Bluepill借助于CoreSimulator解決穩(wěn)定性和可擴展性問題。CoreSimulator是Apple的一個未公開的框架,它具有創(chuàng)建不同類型的設(shè)備模擬器、選擇運行時版本、處理模擬器提供的通知等功能。在文章中作者提到,LinkedIn使用CoreSimulator實現(xiàn)了將Bluepill從Xcode模擬器中隔離出來,并使Bluepill可并行使用多種模擬器運行測試。這里無需關(guān)心Xcode模擬器版本,因為Xcode模擬器是一種隨每次Xcode的更新而不斷進化的黑盒。

如何使用Bluepill

使用Bluepill非常簡單,最簡單的用例中,你在Xcode中將工程Build之后,可使用如下命令運行Bluepill:

./bluepill -a ./Sample.app -s ./SampleAppTestScheme.xcscheme -o ./output/

這個命令將會啟動四個模擬器,此外還有一些可以用來定制測試環(huán)境的選項,包括使用模擬器的數(shù)量、運行時環(huán)境、失敗測試時允許重試的次數(shù)、測試被卡住時的等待時間等。

Bluepill采用BSD-2許可在GitHub上開源提供。對于不打算自己從源代碼構(gòu)建的開發(fā)人員,Bluepill也提供了二進制版本。

擴展閱讀

LinkedIn為了研發(fā)Bluepill,在持續(xù)交付、UI測試上花了很大的功夫,你可以在他們的官方博客上閱讀相關(guān)文章:

  • https://engineering.linkedin.com/blog/2017/01/open-sourcing-bluepill--run-ios-tests-in-multiple-simulators
  • https://engineering.linkedin.com/blog/2015/12/managing-ios-continuous-integration-at-enterprise-scale
  • https://engineering.linkedin.com/blog/2016/04/3x3--ios-build-speed-and-stability
  • https://engineering.linkedin.com/blog/2015/12/test-stability---how-we-make-ui-tests-stable 
責(zé)任編輯:龐桂玉 來源: 移動開發(fā)前線
相關(guān)推薦

2015-06-25 10:14:01

Code Climat 代碼測試工具

2022-06-06 06:00:00

開源無代碼測試工具

2023-10-10 18:20:22

開源API

2019-11-12 09:00:00

測試工具軟件測試Web UI

2009-06-26 10:22:58

JSF測試

2011-05-31 18:09:05

動態(tài)測試

2009-03-31 09:49:40

Rational功能測試性能測試

2023-07-27 13:08:38

2019-09-02 08:57:35

滲透測試開源工具網(wǎng)站安全

2022-01-24 16:55:09

LinuxTCP工具

2020-05-19 12:24:01

Web應(yīng)用安全測試工具開源

2022-12-04 23:52:11

iOS自動化工具

2016-11-11 14:34:46

開源開源工具

2011-05-31 18:25:25

測試工具

2013-11-13 10:49:50

2023-12-27 07:35:29

HyBench數(shù)據(jù)字段

2010-06-04 16:31:33

Linux網(wǎng)絡(luò)測試

2014-07-01 10:09:01

2019-02-26 08:30:48

2020-08-07 08:10:25

開源技術(shù) 工具
點贊
收藏

51CTO技術(shù)棧公眾號