精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

復雜業務場景下如何進行iOS端自動化測試

開發 開發工具 自動化
目前來說,分布式運行并不是難點,亟需解決的問題是針對特殊平臺和復雜場景下的測試,例如復雜業務場景下iOS平臺的自動化測試。

之前寫過一篇文章,提到了一些分布式自動化測試和容器化技術結合的架構設想。但是目前來說,分布式運行并不是難點,亟需解決的問題是針對特殊平臺和復雜場景下的測試,例如復雜業務場景下iOS平臺的自動化測試。

[[189159]]

移動應用特點是簡單易用和UI簡潔,以便用戶在移動端完成一件事的路徑盡可能短。所以一般情況下,我們遇到的iOS APP場景相對于Web應用要簡單一些。所以一般情況下iOS自動化測試并不會遇見復雜場景,測試反饋時間短,效率相對較高。對運行環境來說,只需要相應版本macOS系統以及Xcode環境即可。

但是,對于大型企業的移動應用,例如電商平臺、共享出行平臺等,牽扯到的主要幾個問題:

1. 大規模的測試用例導致測試反饋時間太長

說到這個問題,就要說到現在主流的移動端自動化測試框架Appium和Calabash。我所經歷過的大部分項目,無外乎使用其一。

但在Xcode 7之后,iOS Simulator變得越來越慢(做iOS的同學們應該都有體會),更不幸的是,在iOS 10、Xcode 8之后,Apple棄用了UIAutomation,導致大量高效、常用的API無法使用。

并且迄今為止,Appium沒有針對iOS 10平臺發布一個正式版本的lib和APP,這就導致一些用戶無法使用inspector定位元素(使用ARC的用戶除外),雖然官方建議不要使XPath進行元素定位,但有的時候我們不得不這么做。***殺器是iOS自動化受到Apple的單例限制(一臺物理主機同一時間有且僅有一個Instrument)。

這些種種最終導致了iOS自動化測試時間太長,更不用談及多種iOS設備的兼容性問題了,自動化實現過程成本過高,令大部分組織和團隊食之無味、棄之可惜。

iOS自動化測試時間太長

2. 復雜場景無法在一臺機器上進行測試

對于復雜場景的應用來說,我們很難通過現有框架同時在一臺物理機上控制多個不同的模擬器,也無法隨意的切換到系統級控件去查看APP觸發的通知等等。你可以通過一些合法途徑使用虛擬化做iOS端的并發測試(切記合法途徑)。

但這樣還是逃不掉物理機龐大的開銷以及虛擬機的性能損耗問題,拋開這個問題不講,單從復雜場景來說,例如出行平臺,你需要一臺機器作為乘客發布訂單,還需要多個擁有不同地址定位的車主來測試訂單推送優先級等。對于這種復雜場景來說Appium控制起來就很難了。

使用虛擬化做iOS端的并發測試

3. 測試場景需要切換不同APP

如今很多的APP功能不單單是在應用本身,可能還需要跟系統應用以及其他應用進行交互,例如用戶在被測APP中執行某個操作之后,需要檢查notification,或者在測試的過程中需要切換無網絡環境,從而測試APP的不同行為。

想到這些復雜場景和各種坑之后,估計打算做iOS測試的同學心里開始打退堂鼓了。下面我們來一步步逐一解決這些問題:

問題一:解決Instrument單例的限制

對于這個問題困擾了很久,那業界領先的互聯網公司又是怎么做的呢?有一次看到Uber的Showcase,在一臺機器上啟動了5、6臺模擬器,用不同類型的賬號登錄(乘客、車主)每個模擬器做不同的行為。由于是在物理機上的對iOS模擬器的操作,速度和性能都得到了很好的保證。他們是怎么解決Instrument的限制呢?

我們可以通過使用Apple私有API,同時操作不同型號的模擬器,對多個不同的Simulator進行批量化操作,例如啟動、重置、安裝、運行等操作:

使用Apple私有API

問題二:解決復雜場景下控制不同iOS模擬器的不同行為

xcodebuild命令使我們可以把WebDriverAgent運行在我們想要的設備上,但如果使用Apple的命令,還是只能在單個設備上安裝運行,之前運行的多臺設備都會自動關掉,而只會保留命令中的destination,默認啟動8100端口去檢測這臺設備:

如果這樣的話,那我們之前做的所有工作不就沒有任何意義了嗎?別急,我們已然可以通過Apple提供的資源,對不同的設備啟動不同的進程端口進行監聽。

這時我們可以通過curl命令launch我們需要的進行測試的APP,可以輕而易舉的拿到當前運行APP的session:

  1. curl -X POST '-H "Content-Type: application/json"' -d "{\"desiredCapabilities\":{\"bundleId\":\"com.apple.Preferences\"}}" http://localhost:8101/session 
  2.  
  3. response:{ 
  4.   "value" : { 
  5.     "sessionId" : "94A6580F-1F0F-4411-AC64-3E2525BBA5E1", 
  6.     "capabilities" : { 
  7.       "device" : "iphone", 
  8.       "browserName" : "Settings", 
  9.       "sdkVersion" : "10.1", 
  10.       "CFBundleIdentifier" : "com.apple.Preferences" 
  11.     } 
  12.   }, 
  13.   "sessionId" : "94A6580F-1F0F-4411-AC64-3E2525BBA5E1", 
  14.   "status" : 0} 

同時,對于不同的設備,我們可以通過HTTP server啟動inspector來幫助我們進行APP中的元素定位,即使是系統應用:

通過HTTP server啟動inspector

問題三:解決不同測試場景需要APP的切換

有了第二個問題的解決方案,只要執行相似的curl命令,就可以拿到不同的APP以及不同的sessionId。

執行相似的curl命令

是時候放棄Appium了?

通過Uber的Octopus框架以及Appium正在使用的WebDriverAgent, 不難發現此方案的推廣速度以及樂觀的前景。我們可以使用不同curl命令對不同的Simulator以及APP進行query、tap、typing以及touch id等操作,這與Appium提供的那些我們最常使用的API的等價的,并且由于不需要先去調Appium API 而直接去通過WebDriverAgent與元素進行交互,使得測試執行速度上有不同程度的提高,又由于自身強大的控制力以及靈活性,使其可以輕松進行并發操作和復雜業務場景支持,我們只需要把不同的curl命令進行封裝,結合各自APP的業務場景便可以輕松完成。

帶來的成本?

可以說大部分團隊沒有引入移動端自動化的原因,最主要的無外乎編寫成本高,UI變化快。個人認為這個方案帶來的成本比其帶來的價值要大得多。不再需要QA再去學習新的語言來編寫腳本,所有與APP元素的交互都可通過HTTP請求來完成,元素信息通過易讀的JSON來呈現。我們可以通過任何語言和框架用編寫后端自動化測試的方式完成iOS的自動化測試。

下面通過測試ThoughtWorks的StartKit做一個簡單的登錄頁面的測試Demo(請在原文里點擊鏈接),并且我們已經在超過三個項目中使用過該測試方案。

總結

由于項目因素,我們實踐的場景會相對受限,長時間如此可能會影響我們解決問題的思路,我們應該不時的跳出自己工作之外去思考,把簡單的事情做的復雜,這樣才可以在碰到復雜問題的時候,做的簡單。

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2024-11-21 15:24:49

2021-04-28 16:49:27

自動化設備制藥

2010-03-30 09:38:58

2016-10-26 22:16:48

macaca自動化測試javascript

2016-10-26 22:24:00

macaca自動化測試javascript

2016-10-26 22:07:06

macaca自動化測試javascript

2016-10-26 22:29:13

macaca自動化測試javascript

2020-09-27 14:24:58

if-else cod業務

2024-11-01 15:05:12

2011-05-16 15:36:00

軟件測試

2022-01-14 11:51:00

測試工具自動化

2009-08-19 09:00:48

單元測試框架自動化測試

2022-07-21 08:43:01

功能測試測試

2020-08-03 15:40:57

Web自動化工具測試

2014-04-16 14:15:01

QCon2014

2022-07-04 19:02:06

系統業務思考

2017-04-10 12:25:32

iOS自動化測試

2014-09-11 15:05:40

驅動設計驅動開發

2023-01-04 13:41:23

RPA自動化機器人

2017-06-05 15:08:14

容量全鏈路流量
點贊
收藏

51CTO技術棧公眾號

狠狠躁夜夜躁久久躁别揉| 精品一区二区免费| 亚洲精品一区二三区不卡| 日韩免费毛片视频| 日本在线观看| 不卡的av在线播放| 国产精品久久久久久久久久尿| 特黄一区二区三区| 国产精品毛片久久久| 在线观看免费视频综合| 加勒比海盗1在线观看免费国语版| 日韩一区二区三区不卡| 蜜桃视频第一区免费观看| 欧美精品第一页在线播放| 精品无码在线观看| 成人h动漫精品一区二区器材| 在线观看免费亚洲| 人妻夜夜添夜夜无码av| 日本三级在线播放完整版| www.性欧美| 亚洲精品欧美日韩专区| aaa在线视频| 亚洲国产一区二区精品专区| 日韩在线播放视频| 国产精品1000部啪视频| 日韩中文字幕视频网| 欧美性一二三区| 国产精品网站免费| 在线xxxx| 亚洲欧洲国产日本综合| 欧美日韩国产三区| 欧洲精品久久一区二区| 国产尤物一区二区在线| 国产精品电影观看| 九九九在线观看| 国产精品成人一区二区网站软件| 日韩在线中文字| 久久久久亚洲av无码专区桃色| 精品深夜福利视频| 日韩一级成人av| 亚洲精品成人在线播放| 97精品国产综合久久久动漫日韩 | 国产精品毛片一区二区| 亚洲1区在线观看| 91精品国产综合久久小美女| 国产精品视频分类| 3d欧美精品动漫xxxx无尽| 懂色av中文一区二区三区天美| 日韩精品久久一区二区| 在线观看wwwxxxx| 一区二区三区免费观看| 老司机午夜网站| 精品孕妇一区二区三区| 亚洲欧美日韩一区| 美国av在线播放| 1stkiss在线漫画| 亚洲码国产岛国毛片在线| 一区二区三区四区视频在线观看 | 国产欧美一区二区精品性色超碰| 免费国产一区二区| 毛片网站在线观看| 国产网站一区二区三区| 视频在线精品一区| 国产乱视频在线观看| 国产欧美一区二区在线| 日韩欧美一区二区三区四区| 98在线视频| 中文字幕一区二区三区在线播放 | 日本中文字幕电影在线免费观看| 国产精品丝袜在线| 一区二区三区在线视频111| 婷婷在线视频观看| 亚洲免费av高清| 欧美人与动牲交xxxxbbbb| 激情网站在线| 欧美日韩精品在线观看| www日韩视频| 欧美色网在线| 69堂国产成人免费视频| 欧美老女人bb| 先锋影音国产精品| 日韩中文字幕av| 欧美片一区二区| 亚洲在线观看| 成人国产精品一区二区| 亚洲国产精品久久人人爱潘金莲| 99国产欧美久久久精品| 神马影院我不卡| 欧美激情黑人| 五月天激情综合| 中文字幕在线观看第三页| 在线不卡一区| 日韩av在线精品| 999久久久国产| 欧美日韩专区| 国产成人精品一区二区三区| 国产三级小视频| 99精品久久只有精品| 亚洲巨乳在线观看| 国产经典三级在线| 欧美性淫爽ww久久久久无| 男人添女人荫蒂国产| 精品久久久亚洲| 久久69精品久久久久久国产越南| 国产污污视频在线观看| 精品在线播放免费| 久久人人九九| av片在线观看| 在线免费观看一区| 日本一级大毛片a一| 欧美日韩一二三四| 亚州成人av在线| 国产精品高潮呻吟AV无码| 99久久er热在这里只有精品66| 亚洲自拍的二区三区| 涩涩视频在线免费看| 日韩午夜精品视频| 俄罗斯毛片基地| 亚洲欧美视频一区二区三区| 51精品国产人成在线观看| 国产精品一区二区婷婷| 欧美日韩国产黄| 国产精品偷伦视频免费观看了| 中文字幕伦av一区二区邻居| 国内精品美女av在线播放| 国产精品久久久久毛片| 欧美国产日本视频| 免费观看日韩毛片| 日本亚洲不卡| 久久久久久高潮国产精品视| 国产一区二区在线播放视频| 国产欧美日韩在线| 免费无码av片在线观看| 老牛影视av一区二区在线观看| 欧美大尺度在线观看| 国产一区二区麻豆| 国产精品卡一卡二卡三| 三级a在线观看| 久久99青青| 456亚洲影院| 五月天婷婷在线播放| 亚洲综合一区二区三区| 人妻av一区二区三区| 亚洲精品成人影院| 亚洲精品免费在线视频| 岛国中文字幕在线| 91精品国产福利在线观看| 男人av资源站| 久草精品在线观看| 久久av秘一区二区三区| 国产日韩一区二区三免费高清| 久久精品国产一区二区电影| 97超视频在线观看| 亚洲精品视频观看| 四虎永久免费观看| 红桃视频欧美| 国产在线一区二区三区播放| 国产福利片在线观看| 日韩av一卡二卡| 欧美男人亚洲天堂| 中文字幕国产一区二区| 无尽裸体动漫2d在线观看| 综合亚洲视频| 国产精品yjizz| 日韩精品极品| 国产一区二区动漫| 一区二区久久精品66国产精品| 一区在线播放视频| 日本在线视频播放| 亚洲乱码视频| 日本一区二区三区四区在线观看| 国产精品久久亚洲不卡| 久久精品视频网站| 亚洲男人天堂久久| 精品美女国产在线| 东方伊人免费在线观看| 国内精品国产三级国产a久久| 女人床在线观看| 欧美天堂影院| 国产伦精品免费视频| www视频在线免费观看| 亚洲国产成人精品一区二区| 日韩精品一区二区亚洲av| 国产嫩草影院久久久久| 亚欧美一区二区三区| 欧美体内she精视频在线观看| 亚洲自拍高清视频网站| 中文字幕成在线观看| 中文字幕久精品免费视频| av网站免费大全| 日韩欧美成人精品| 黄色a级片在线观看| 99久久免费视频.com| 亚洲天堂2018av| 99精品视频免费观看| 亚洲激情一区二区三区| 国产精品网址| 91久久精品在线| 秋霞伦理一区| 欧美大奶子在线| melody高清在线观看| 欧美成人欧美edvon| 日韩不卡高清视频| 亚洲香蕉伊在人在线观| 日韩av片在线免费观看| 91热门视频在线观看| www.51色.com| 肉肉av福利一精品导航| 欧美美女黄色网| 成人久久综合| 久久99久久精品国产| 亚洲精品成人一区| 国产999精品久久久| 欧洲性视频在线播放| 精品国产欧美一区二区五十路| 熟妇高潮一区二区高潮| 日韩一区二区免费在线电影| 最近中文字幕在线观看视频| 图片区小说区区亚洲影院| 国产尤物在线播放| 国产三级欧美三级日产三级99| 人妻激情偷乱频一区二区三区| 久久国产免费看| 狠狠热免费视频| 国产精品日韩| 日韩网站在线免费观看| 午夜精品久久99蜜桃的功能介绍| 亚洲丰满在线| 欧美亚洲国产激情| 欧日韩一区二区三区| 私拍精品福利视频在线一区| 国产精品国产三级国产专区53| 中文成人激情娱乐网| 国产精品视频网| 91精品国产66| 国产精品偷伦免费视频观看的| 亚洲天堂资源| 欧美专区福利在线| 欲香欲色天天天综合和网| 欧美国产日韩视频| 人交獸av完整版在线观看| 久久精品久久精品亚洲人| 91.xxx.高清在线| 中文字幕亚洲一区二区三区五十路| 日本中文字幕电影在线观看| 日韩精品免费观看| 亚洲色欧美另类| 亚洲乱码国产乱码精品精| 午夜av免费在线观看| 国产丝袜视频一区| 男人的天堂在线| 亚洲欧洲一区二区三区久久| 国产免费av在线| 在线观看日韩av| 麻豆网在线观看| 欧美麻豆久久久久久中文| 青春草在线视频| 久久久伊人日本| 亚洲妇女成熟| 国产成人精品在线播放| 欧洲美女精品免费观看视频| 成人av在线天堂| 亚洲3区在线| 精品一区日韩成人| 国产剧情一区| 一区二区三区欧美在线| 中文字幕一区二区三区在线视频 | 久久国产精品久久w女人spa| 免费裸体美女网站| 久久精品国产免费| 三级黄色片播放| 北条麻妃一区二区三区| 30一40一50老女人毛片| 日本一区二区三区免费乱视频 | 国产精品久久占久久| 国产肉体ⅹxxx137大胆| 一区二区三区四区五区精品视频| 人妻内射一区二区在线视频| 蜜臂av日日欢夜夜爽一区| 日本一区二区三区在线免费观看| 成人h动漫精品一区二区| 四虎国产精品成人免费入口| 综合电影一区二区三区 | 91高清视频免费看| 国产又黄又粗又硬| 亚洲黄色在线看| 亚洲搞黄视频| 久久免费高清视频| 成人视屏在线观看| 91九色偷拍| 欧美人妖在线| 亚洲爆乳无码精品aaa片蜜桃| 亚洲欧美日韩国产一区| 欧美一级特黄aaa| 91免费看片在线观看| 老熟妇高潮一区二区三区| 欧美日韩国产在线播放| 亚洲视频一区二区三区四区| 欧美精品一区二区三区蜜臀 | 国产日韩欧美高清| 久草视频手机在线观看| 欧美在线观看视频一区二区三区| 性做久久久久久久| 少妇高潮久久77777| 蜜桃麻豆av在线| 亚洲xxxx视频| 日韩专区精品| 日本a级片免费观看| 国产大陆精品国产| 国产aaaaaaaaa| 黑人欧美xxxx| 乱色精品无码一区二区国产盗| 中文字幕av一区| 一区二区三区四区日本视频| 69堂成人精品视频免费| 日韩欧美一区二区三区免费看| 日本中文字幕网址| 国产成人av电影| 亚洲av无一区二区三区| 色久综合一二码| 五月天婷婷激情网| 欧美激情一区二区三区在线视频观看| 欧美videos粗暴| 日韩国产高清一区| 亚洲自啪免费| 六十路息与子猛烈交尾| 亚洲国产日韩综合久久精品| 国产熟女一区二区三区四区| 中文字幕国产精品久久| 欧亚一区二区| 欧美一区1区三区3区公司| 日韩午夜黄色| 中国黄色片视频| 亚洲影院在线观看| aaa一区二区三区| 久久综合久久八八| 亚洲色图综合| 中文字幕中文字幕在线中一区高清| 日韩经典一区二区| 日韩精品卡通动漫网站| 欧美午夜精品久久久久久浪潮 | 91天堂素人约啪| 日本三级免费看| 精品国产乱码91久久久久久网站| 18视频在线观看| 亚洲一区二区三区久久| 综合激情一区| 绯色av蜜臀vs少妇| 午夜视频一区在线观看| 黄频网站在线观看| 国内自拍欧美激情| 久久狠狠久久| av动漫在线观看| 久久久欧美精品sm网站| 精品一区二区无码| 最新的欧美黄色| 999久久久国产999久久久| 免费在线精品视频| 国产精品一区二区三区四区| 欧美日韩国产精品一区二区三区| 精品免费国产一区二区三区四区| a级大胆欧美人体大胆666| 久久99精品久久久久久青青日本 | 日产精品一区二区| 日本在线播放一区二区| 一区二区三区中文字幕| 欧美自拍第一页| 国产成人一区二| 视频在线不卡免费观看| 性色av浪潮av| 欧美日韩国产区| 91porn在线观看| 风间由美久久久| 久久婷婷av| 天海翼在线视频| 日韩成人在线免费观看| 日本在线精品| 青青视频免费在线| av在线这里只有精品| 国产成人av免费| 欧美国产高跟鞋裸体秀xxxhd| 亚洲妇女av| 国内av一区二区| 欧美日韩精品在线观看| 日本在线观看视频| 国产一区二区三区四区五区在线 | 国产精品91久久久久久| 中文字幕一区二区三区在线视频| 久久久久国产精品区片区无码| 欧洲视频一区二区| 久久亚洲资源| 欧美日韩综合另类| 国产激情视频一区二区三区欧美| 综合激情网五月| 欧美大尺度在线观看| 国产一区二区三区四区二区| 人妻精品久久久久中文字幕69| 日韩欧亚中文在线| av软件在线观看| 五月天婷亚洲天综合网鲁鲁鲁|