移動端自動化測試調(diào)研報告

1. 場景

因為公司業(yè)務與微信公眾號息息相關(guān)旬渠,要展開自動化測試等需求除了要解決Web端外還需要兼顧Android與Ios等常見移動端設(shè)備的自動化測試方案俱萍,并且目前已決定使用Selenium框架實現(xiàn)Web端自動化測試端壳,為了解決移動微信前端自動化測試方案告丢,現(xiàn)對方案選型展開調(diào)研,調(diào)研主要以查閱網(wǎng)上資源進行损谦。

2. 工具選擇

目前市面上主流開源的自動化測試框架有如下:

框架名稱 支持平臺 腳本語言
Macaca PC岖免,IOS,Android照捡,Hybrid Js颅湘、Java、Python
Appium PC栗精,IOS闯参,Android瞻鹏,Hybrid Ruby、Python鹿寨、Java新博、Js、OC脚草、PHP赫悄、C#(.Net)
Selenium PC(WebApplication) Java,C#馏慨,Python埂淮,Ruby,PHP写隶,Perl倔撞,JS
Selendroid Android Java,Python慕趴,Ruby
Robotium Android Java
PhantomJS PC(WebApplication) Js
Calabash IOS误窖,Android,Hybrid Ruby
KARMA PC(WebApplication) JS
2.1. 支持移動端

因為此次調(diào)研僅考慮移動端自動化測試秩贰,僅限于PC端webApplication的幾個框架就不可避免的要排除掉了霹俺,這其中包含Selenium,PhantomJS毒费,KARMAR丙唧。

2.2. 支持多平臺

此外,對于當前市場Android與IOS并存的情景觅玻,需要保證不同平臺項目都能正常運行想际,所以只提供單一平臺的Selendroid,Robotium可以暫時不用考慮了溪厘。

2.3 學習成本

經(jīng)過上面兩次篩選胡本,我們的選擇剩下了Macaca,Appium畸悬,Calabash侧甫。但是由于當前測試人員對Ruby語言認知較少,選擇Calabash的話蹋宦,需要花費更多的額外時間學習語言披粟,由此Calabash也排除在外。

剩下Appium冷冗,Macaca兩種工具守屉,現(xiàn)對兩者進行對比

3. Appium與Macaca對比
3.1 基礎(chǔ)資料

3.1.1. Appiumhttps://testerhome.com/topics/1045
3.1.2. Macacahttps://macacajs.github.io/zh/introduction

3.2 環(huán)境搭建

3.2.1. Appium: https://testerhome.com/topics/1045
根據(jù)教程搭建的環(huán)境能正常運行案例。
3.2.2. Macaca: https://testerhome.com/topics/7898
需要配置眾多東西蒿辙,搭建好環(huán)境之后無法運行實例拇泛,詢問業(yè)內(nèi)使用過Macaca的朋友滨巴,得到的反饋是目前還存在很多問題,建議我先去國內(nèi)移動端自動化測試社區(qū)TesterHose排雷踩坑,研究了半天后沒法解決問題(資料少)

3.3 實例對比

3.3.1 Appium: https://testerhome.com/wiki/apiumpythonapichinese

from appium import webdriver  
import time  

#  配置
desired_caps = {}  
desired_caps['deviceName'] = 'GT-N7100'  
desired_caps['platformName'] = 'Android'  
desired_caps['version'] = '4.3'  
desired_caps['appPackage'] = 'com.job.android'  

#  實例化瀏覽器
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)  

#  尋找元素并操作
driver.find_element_by_id("com.job.android:id/closebtn").click()  
driver.find_element_by_id("com.job.android:id/tv_msg_remind_right").click()  
driver.find_element_by_id("com.job.android:id/loginbutton").click()  
driver.find_element_by_id("com.job.android:id/login_username").send_keys("123456")  
driver.find_element_by_id("com.job.android:id/login").click()  

3.3.2 Macaca: http://macacajs.github.io/macaca-wd

#coding=utf-8
import unittest
import time
from macaca import WebDriver

desired_caps = {
    'platformName': 'Android', # iOS, Android, Desktop
    #'browserName': 'Chrome',    # Chrome, Electron
    "package": "com.huawei.iptv.stb",
    "activity": "com.huawei.iptv.stb.ui.HeadTabActivity",
    "deviceName":"192.168.1.105:5555",
}

server_url = {
    'hostname': '127.0.0.1',
    'port': 3456
}
driver = WebDriver(desired_caps, server_url)
driver.init()
driver.element_by_name("直播").click()

總的來說俺叭,兩者的API相似度很高兢卵,沒有什么特別之處

3.4 擴展功能

3.4.1 Appium: 無擴展,僅提供基礎(chǔ)框架绪颖,其余需要自己搭配其他框架實現(xiàn)
3.4.2 Macaca: 集成了較多功能秽荤,詳情查看https://macacajs.github.io/zh/coverage,但使用門檻較高

3.5 其他因素

3.5.1 框架維護
Appium屬于國際通用的開源框架柠横,團隊應該會長期維護窃款,
Macaca屬于阿里開源框架,不清楚會不會維護牍氛,不排除系統(tǒng)導致框架不可用的局面
3.5.2 功能比較:Appium在功能上要優(yōu)于Macaca

4.0 工具抉擇

建議使用Appium作為移動端自動化測試框架晨继,原因如下:

  1. Appium作為老大哥,功能上較為完善搬俊,文檔于資料等較為齊全
  2. Appium支持較多語言紊扬,特別是C#,與公司開發(fā)語言一致唉擂,對一些疑難雜癥可以尋求開發(fā)幫助
  3. Appium直接封裝Selenium框架接口以兼容移動端自動化解決方案問題餐屎,與Web自動化所選擇的Selenium框架統(tǒng)一
  4. 公司已經(jīng)搭建Jenkins環(huán)境,并且Appium也有工具解決APP抓元素問題玩祟,所以Macaca集成的工具對現(xiàn)階段我們而言用處不大腹缩,還需要額外投入更多成本去學習怎么使用,得不償失空扎。
  5. 避免陷入Macaca后續(xù)不可用的尷尬局面藏鹊。
    Macaca目前還屬于快速迭代的時期,還不太穩(wěn)定转锈,鑒于此盘寡,建議使用Appium并且持續(xù)保持對Macaca的關(guān)注。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撮慨,一起剝皮案震驚了整個濱河市竿痰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甫煞,老刑警劉巖菇曲,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抚吠,居然都是意外死亡,警方通過查閱死者的電腦和手機弟胀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門楷力,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喊式,“玉大人,你說我怎么就攤上這事萧朝〔砹簦” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵检柬,是天一觀的道長献联。 經(jīng)常有香客問我,道長何址,這世上最難降的妖魔是什么里逆? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮用爪,結(jié)果婚禮上原押,老公的妹妹穿的比我還像新娘。我一直安慰自己偎血,他們只是感情好诸衔,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颇玷,像睡著了一般笨农。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帖渠,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天磁餐,我揣著相機與錄音,去河邊找鬼阿弃。 笑死诊霹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的渣淳。 我是一名探鬼主播脾还,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼入愧!你這毒婦竟也來了鄙漏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤棺蛛,失蹤者是張志新(化名)和其女友劉穎怔蚌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旁赊,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡桦踊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了终畅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片籍胯。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡竟闪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杖狼,到底是詐尸還是另有隱情炼蛤,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布蝶涩,位于F島的核電站理朋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绿聘。R本人自食惡果不足惜嗽上,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斜友。 院中可真熱鬧炸裆,春花似錦、人聲如沸鲜屏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洛史。三九已至惯殊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間也殖,已是汗流浹背土思。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忆嗜,地道東北人己儒。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像捆毫,于是被迫代替她去往敵國和親闪湾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容