千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 幾個(gè)超好用的手機(jī)開源自動(dòng)化測(cè)試工具分享

幾個(gè)超好用的手機(jī)開源自動(dòng)化測(cè)試工具分享

來源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-08-12 11:42:49 1660275769

  隨著消費(fèi)者對(duì)移動(dòng)應(yīng)用使用的占比增加, APP測(cè)試越來越被重視! 在現(xiàn)已出現(xiàn)的開源移動(dòng)自動(dòng)化測(cè)試工具中,總結(jié)了幾個(gè)最實(shí)用的,希望對(duì)大家有幫助:

  1)Calabash(適用于Android和iOS)

  Calabash-android是支持android的UI自動(dòng)化測(cè)試框架,PC端使用了cucumber框架,通過http和json與模擬器和真機(jī)上安裝的測(cè)試apk通信,測(cè)試apk調(diào)用robotium的方法來進(jìn)行UI自動(dòng)化測(cè)試,支持webview操作。

  Calabash-android 是支持 android 的 UI 自動(dòng)化測(cè)試框架,PC 端使用了 cucumber 框架,通過 http 和 json 與模擬器和真機(jī)上安裝的測(cè)試 apk 通信,測(cè)試 apk 調(diào)用 Robotium 的方法來進(jìn)行 UI 自動(dòng)化測(cè)試,支持 webview 操作, 依靠Ruby代碼的支持.

  Calabash-android 架構(gòu)圖

手機(jī)開源自動(dòng)化測(cè)試工具1 

 

  Features —— 這里的 feature 就是 cucumber 的 feature,用來描述 user stories 。

  Step Definitions —— Calabash Android 事先已經(jīng)定義了一些通用的 step。你可以根據(jù)自己的需求,定義更加復(fù)雜的步驟。

  Your app —— 測(cè)試之前,你不必對(duì)你的應(yīng)用修改。(這里其實(shí)是有問題,后面我們會(huì)說到。)

  Instrumentation Test Server —— 這是一個(gè)應(yīng)用,在運(yùn)行測(cè)試的時(shí)候會(huì)被安裝到設(shè)備中去。 這個(gè)應(yīng)用是基于 Android SDK 里的 ActivityInstrumentationTestCase2。它是 Calabash Android 框架的一部分。Robotium 就集成在這個(gè)應(yīng)用里.

  2)Appium(Android和iOS)

  1、Appium 是什么?

  Appium是一個(gè)開源的,適用于原生或混合移動(dòng)應(yīng)用( hybrid mobile apps )的自動(dòng)化測(cè)試工具,Appium應(yīng)用WebDriver: JSON wire protocol驅(qū)動(dòng)安卓和iOS移動(dòng)應(yīng)用。

  2、Appium的特點(diǎn):

  支持多平臺(tái)(Android、iOS等)

  支持多語言(python、java、ruby、js、c#等)

  Appium是跨平臺(tái)的,可以用在OSX,Windows以及Linux桌面系統(tǒng)上運(yùn)行。

  Appium選擇了Client/Server的設(shè)計(jì)模式。只要client能夠發(fā)送http請(qǐng)求給server,client用什么語言來實(shí)現(xiàn)都是可以的,這就是如何做到支持多語言的原因;

  Appium擴(kuò)展了WebDriver的協(xié)議,沒有自己重新去實(shí)現(xiàn)一套。這樣的好處是以前的WebDriver API能夠直接被繼承過來,以前的Selenium(WebDriver)各種語言的binding都可以拿來就用,省去了為每種語言開發(fā)一個(gè)client的工作量。

  3、Appium的哲學(xué):

  不需要重新編譯或者修改應(yīng)用

  不被一種語言或者框架約束

  不重復(fù)造輪子

  開源免費(fèi)

  Appium測(cè)試相當(dāng)于黑盒測(cè)試。這個(gè)測(cè)試框架,一般用于測(cè)試UI邏輯的正確性,不能升入測(cè)試業(yè)務(wù)邏輯流程。

  3)Robotium(Android )

  Robotium是Android平臺(tái)上類似于selenium的開源自動(dòng)化測(cè)試框架,主要針對(duì)Android平臺(tái)的應(yīng)用進(jìn)行黑盒自動(dòng)化測(cè)試,它提供了模擬各種手勢(shì)操作(點(diǎn)擊、長按、滑動(dòng)等)、查找和斷言機(jī)制的API,能夠?qū)Ω鞣N控件進(jìn)行操作。有JUnit基礎(chǔ)的開發(fā)者,還是非常容易上手的。

  Robotium結(jié)合Android官方提供的測(cè)試框架達(dá)到對(duì)應(yīng)用程序進(jìn)行自動(dòng)化的測(cè)試。另外,Robotium 4.0版本已經(jīng)支持對(duì)WebView的操作。Robotium的核心類是Solo,通過Solo可以對(duì)控件進(jìn)行各種操作. Robotium 對(duì)Activity,Dialog,Toast,Menu 都是支持的。

  最明顯的缺點(diǎn)有兩個(gè),一是必須要和被測(cè)系統(tǒng)簽名保持一致,二是不能做任何跨進(jìn)程的操作。

  robotium 是 android 自帶類 Instrumentation 的一個(gè)封裝,方便測(cè)試人員直接調(diào)用封裝好的接口,也就是說,實(shí)際上我們直接使用Instrumentation 也能夠進(jìn)行自動(dòng)化測(cè)試,但robotium可以簡(jiǎn)化我們的測(cè)試步驟,我們只需要調(diào)用某個(gè)robotium的API,傳幾個(gè)參數(shù),就等于我們?cè)谡{(diào)用一部分的Instrumentation幫我們實(shí)現(xiàn)測(cè)試。

  4)Frank(iOS)

  Frank 提供了針對(duì)iOS平臺(tái)的功能測(cè)試能力,可以模擬用戶的操作對(duì)應(yīng)用程序進(jìn)行黑盒測(cè)試,并且使用Cucumber編寫測(cè)試用例,使測(cè)試用例如同自然語言一樣描述功能需求,讓測(cè)試以“可執(zhí)行的文檔”的形式成為業(yè)務(wù)客戶與交付團(tuán)隊(duì)之間的橋梁。

  Frank 是 iOS 開發(fā)環(huán)境下一款實(shí)現(xiàn)自動(dòng)測(cè)試的工具,Xcode 環(huán)境下開發(fā)完成后,通過 Frank 實(shí)現(xiàn)結(jié)構(gòu)化的測(cè)試用例,其底層語言為 Ruby,作為一款開源的 iOS 測(cè)試工具,在國外已經(jīng)有廣泛的應(yīng)用。但是國內(nèi)相關(guān)資料卻比較少。其最大的優(yōu)點(diǎn)是允許我們用熟悉的自然語言實(shí)現(xiàn)實(shí)際的操作邏輯。

  它提供了針對(duì) iOS 平臺(tái)的功能測(cè)試能力,可以模擬用戶的操作對(duì)應(yīng)用程序進(jìn)行黑盒測(cè)試,并且使用 Cucumber 編寫測(cè)試用例,使測(cè)試用例如同自然語言一樣描述功能需求,讓測(cè)試以“可執(zhí)行的文檔”的形式成為業(yè)務(wù)客戶與交付團(tuán)隊(duì)之間的橋梁。

  優(yōu)點(diǎn): 測(cè)試場(chǎng)景是在 Cucumber 的幫助下,用可理解的英語句子寫的,還有活躍的社區(qū)支持,以及不斷擴(kuò)大中的庫。

  缺點(diǎn):對(duì)手勢(shì)的支持有限,所以在設(shè)備上運(yùn)行測(cè)試有點(diǎn)難。

  5)UiAutomator(Android)

  uiautomator是Android官方推出的安卓應(yīng)用界面自動(dòng)化測(cè)試工具,是理想的針對(duì)APK進(jìn)行自動(dòng)化功能回歸測(cè)試的利器。能夠根據(jù)文本、控件id、坐標(biāo)進(jìn)行點(diǎn)擊、長按、滑動(dòng)、查找等操作,實(shí)現(xiàn)與人一致的手動(dòng)操作邏輯,根據(jù)測(cè)試用例使用python編碼后根據(jù)指定命令操作,檢查預(yù)期結(jié)果,進(jìn)行測(cè)試。最終通過單元測(cè)試執(zhí)行用例腳本生成相應(yīng)報(bào)告

  一、Uiautomator簡(jiǎn)介

  Android SDK提供下述工具來支持自動(dòng)化的功能界面測(cè)試:

  1、uiautomatorviewer:掃描、分析待測(cè)應(yīng)用的UI組件的圖像工具。

  2、uiautomator:包含創(chuàng)建定制功能界面測(cè)試API和自動(dòng)化運(yùn)行測(cè)試用例的引擎的JAVA類庫。

  優(yōu)點(diǎn):可以對(duì)所有操作進(jìn)行自動(dòng)化,操作簡(jiǎn)單;

  缺點(diǎn):Android版本需要高于4.0。

  二、Uiautomator常用API了解

  以下是uiautomator最基本最常用到的三個(gè)類,這里只是簡(jiǎn)單地介紹這三個(gè)類的作用,后續(xù)本人還會(huì)寫相關(guān)隨筆詳細(xì)說明。

  1、UiDevice:用于獲取設(shè)備的各種狀態(tài)。

  獲取設(shè)備信息:屏幕分辨率、選裝狀態(tài)、亮滅屏......

  操作:按鍵、坐標(biāo)操作、滑動(dòng)、拖拽、截圖......

  監(jiān)聽器功能

  2、UiSelector:通過組件的各種屬性與節(jié)點(diǎn)關(guān)系定位組件。

  涉及到的android基礎(chǔ):Android常用組件、Android組件的屬性

  3、UiObject:代表一個(gè)組件對(duì)象,對(duì)象有許多模擬實(shí)際操作手機(jī)的方法和屬性。

  文本的編輯, 手勢(shì)操作, 獲取子類,判斷對(duì)象是否存在

  6)Katalon

  KatalonStudio是一個(gè)能提供一整套功能來實(shí)現(xiàn)Web,API和Mobile的全自動(dòng)測(cè)試解決方案的自動(dòng)化測(cè)試平臺(tái)。

  KatalonStudio構(gòu)建于開源Selenium和Appium框架之上,通過減少學(xué)習(xí)和集成這些框架以滿足。

  自動(dòng)化測(cè)試需求所需的工作量和專業(yè)知識(shí),使團(tuán)隊(duì)能夠快速開始測(cè)試自動(dòng)化。

  Katalonstudio是一個(gè)非常好的工具,特別是對(duì)于那些有最少編程或開發(fā)背景的人。

  如果你問我,在沒有開發(fā)背景的情況下如何開始自動(dòng)化測(cè)試。那么,使用像 Katalon studio 這樣的工具是一個(gè)很好的開始。

  更多關(guān)于軟件測(cè)試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
反欺詐中所用到的機(jī)器學(xué)習(xí)模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預(yù)測(cè)一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會(huì)出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項(xiàng)目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會(huì)開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個(gè)高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開發(fā)平臺(tái),它為眾多硬件平臺(tái)和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
快速通道