LinkedIn軟件工程師Keqiu Hu在官方博客上介紹了該公司的Bluepill。Bluepill使得開發人員可以在單一機器上用多種模擬器運行iOS UI測試,目標在于提供穩定的測試工具和可擴展的測試。
測試平臺的穩定性,主要針對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