當前位置:首頁 » 安卓系統 » android自動化腳本

android自動化腳本

發布時間: 2022-12-10 04:27:18

⑴ android app自動化測試工具有哪些

1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能做程序做一些壓力測試,由於測試事件和數據都是隨機的,不能自定義,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數據、事件。缺點是腳本用python來寫,對測試人員來說要求較高,有比較大的學習成本。

3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程序做更為復雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同一個進程來實現這些功能,你可以把Instrumentation看成一個類似Activity或者Service並且不帶界面的組件,在程序運行期間監控你的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。

4、UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控制項屬性而不看源碼)。基於java,測試代碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試)。缺點是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。

5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合Android Studio來編寫測試的簡單例子

6、Selendroid:也是基於Instrumentation的測試框架,可以測試Native App、Hybird App、Web App,但是網上資料較少,社區活躍度也不大。

7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。缺點是對測試人員來說要有一定的Java基礎,了解Android基本組件,不能跨App。

8、Athrun是淘寶出的一個移動測試框架/平台,同時支持iOS和Android。Android部分也是基於Instrumentation,在Android原有的類基礎上進行了擴展,提供一整套面向對象的API。這里有詳細介紹。

9、Appium是最近比較熱門的框架,社區也很活躍。這個框架應該是是功能最強大的,

它的優點:

  • 開源;

  • 支持Native App、Hybird App、Web App;

  • 支持Android、iOS、Firefox OS;

  • Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux;

它的哲理是:

  • 用Appium自動化測試不需要重新編譯App;

  • 支持很多語言來編寫測試腳本,Java、Javascript、php、Python、C#、Ruby等主流語言;

  • 不需要為了自動化測試來重造輪子,因為擴展了WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);

  • 移動端自動化測試應該是開源的;

它的設計理念:

  • Client/Server架構,運行的時候Server端會監聽Client端發過來的命令,翻譯這些命令發送給移動設備或模擬器,然後移動設備或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appium client libraries多種語言的測試腳本,而且Server端完全可以部署在伺服器上,甚至雲伺服器

  • Session,每個Client連接到Server以後都會有一個Session ID,而且Client發送命令到Server端都需要這個Session ID,因為這個seesion id代表了你所打開的瀏覽器或者是移動設備的模擬器。所以你甚至可以打開N個Session,同時測試不同的設備或模擬器。

  • Desired Capabilities,其實就是一個鍵值對,設置一些測試的相關信息來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等信息。

  • Appium Server是Node.js寫的,所以可以直接用NPM來進行安裝。

  • Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。

相關限制:

  • 如果你在Windows使用Appium,你沒法使用預編譯專用於OS X的.app文件,因為Appium依賴OS X專用的庫來支持iOS測試,所以在Windows平台你不能測試iOS Apps。這意味著你只能通過在Mac上來運行iOS測試。

總結:

  • 在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支持Native App、Hybird App、Web App,還支持N種語言來編寫你的測試腳本。

⑵ 如何利用jenkins來做android自動化

首先搭建起jenkins環境,android官方提供了使用ant編譯打包的腳本,所以要在jenkins系統配置裡面將ant配置好;然後在jenkins裡面新建一個項目,這里列出比較重要的幾項配置:
1、項目源代碼位置,一般就是指定svn吧
2、構建過程添加shell,寫入如下命令:
android update project -t ? -p ? -n ? (其中第一個問號處填寫要使用的androidAPI版本,可在命令行中用android list target獲得,第二個問號處填寫項目目錄,當前目錄的話就用 . 表示,第三個問號是填寫項目名稱)
3、然後添加ant調用,最好要會ant的基礎使用
這幾個配置都是為了能將源代碼打包成apk文件,打包完成後,可以再次調用shell,連接設備或者打開模擬器,安裝應用,執行自動化腳本;

⑶ 創造 | 一個強大的 Android 自動化打包腳本

該腳本是我在獨立開發過程中,為了提升 Android 應用打包和運營的效率而開發的腳本。項目地址是,

https://github.com/Shouheng88/autopackage

如項目中的語言構成展示的,該腳本完全使用 Python 語言開發完成。

使用起來非常簡單,首先你要准備如下的環境,

然後,通過編輯配置文件 config.yml 對腳本進行配置。比如,

YAML 格式也不算新穎,早在幾年之前的 SpringBoot 裡面就已經採用了這種格式。相比於使用 json 或者 properties 等格式的配置文件,它更加簡潔。

1、使用 gradle 指令自動打包,區分 32 位和 64 位 :因為現在有些應用市場明確要求區分 32 位和 64 位,所以,打包的時候要分開進行打包。

2、打包完成之後將 APK 拷貝到指定的目錄 :主要用來做本地的 APK 文件備份,後面也會用這里拷貝的 APK 文件進行自動化加固。

3、使用 diffuse 輸出相對於上一個版本的 APK 版本差異報告 :diffuse 是 JakeWharton 開發的 APK, AAB, AAR 和 JAR 的對比工具。這里我用它對比當前版本和上一個版本的 APK 的信息,以實現對 APK 質量的監控。diffuse 項目的地址是 https://github.com/JakeWharton/diffuse

3、拷貝多語言資源到指定的目錄,並自動提交到 Github 倉庫以便於協助翻譯 :對做國際化的應用的開發者而言,我們可以通過應用內的協助翻譯功能藉助社區的力量實現應用的多語言。這里我盡量將這個過程做得更加自動化。即在應用打包完成之後將應用內的多語言資源按照版本信息拷貝到指定的目錄下。然後使用 Git 工具將其推送到 Github 等。具體的效果可以參考 https://github.com/Shouheng88/LeafNote-Community .

4、自動打 tag 並提交到遠程倉庫 :該功能用來在打包完成之後使用為當前版本添加 Git tag,以便於後續根據版本回滾到指定的 Git 提交記錄。

5、根據 Git 提交記錄自動生成更新日誌 :上面做了為項目自動添加 Git tag 的功能之後,我們可以根據當前版本到上一版本之間的 Git 提交記錄的 comment 信息自動生成版本更新日誌。雖然,這個這樣生成的更新日誌並不能直接用作發布時的更新記錄,但在至少可以讓我們直觀得看到這個版本修改了什麼。

6、使用 360 加固 對上述 APK 進行加固並輸出到指定的目錄 :加固操作其實非常簡單,只需要一個 command 指令就可以完成了,

不過在使用上述命令之前需要先通過 GUI 的形式修改你在 360 加固中的渠道和簽名信息(直接手動改文件也可以)。

7、上傳打包 APK 到藍奏雲 :藍奏雲是現在很多開發者用來分享軟體的一個雲存儲平台,100M 以下的文件可以免費存儲,類似於網路雲。上傳藍奏雲之前需要先修改配置文件,

這里需要填入的 ylogin 和 phpdisk_info 可以在登錄之後通過 Chrome 的開發工具查看 cookie 信息得到。目前能夠做到自動化的一個方案就是使用上述兩個信息。

8、通過 Telegram bot 將打包完成的渠道包和更新日誌信息發送到 Telegram 群組 :對海外的用戶我們可以通過 Telegram 作為一個交流的渠道。Telegram 是一個非常好用的聊天軟體。它提供了 bot 功能,即一個可以推送消息的機器人。我們可以通過這個功能來在群組中推送消息、圖片和文件。Telegram 的 bot 有非常強大的自定義性。其實我們完全可以基於爬蟲和 bot 維護一個社區,然後通過在社區內推送廣告來獲得一些利益。這也不失為一個賺錢的渠道。使用 Telegram bot 之前需要在配置文件中填入如下信息,

這里的 token 是注冊 bot 的時候得到的信息。chat_id 可以通過如下方式獲取到:

即將 token 信息填入到上述 <YourBOTToken> 處。在返回的 json 結果中可以獲取到 chat id 信息。

向群組推送信息的方式非常簡單,一個 http 請求即可完成,

更多的協議可以參考這個文檔: https://core.telegram.org/bots/api#senddocument

9、完成上述操作之後使用郵件通知打包結果 :最後就是在完成了最終的打包操作之後通過 Email 發送一封郵件,內部包含了本次打包的 diff 信息等給指定的用戶。使用郵件功能需要在配置文件中填寫,

這里我們使用的是 QQ 郵箱來發送郵件。這里需要填寫的 user 和 password 欄位分別是郵箱和開通 smtp 服務時系統提供的密碼信息。QQ 郵箱開通 SMTP 伺服器其 官方文檔 即可。

上述是該打包腳本的主要功能。後續我會添加更多功能。因為時間有限,有些功能需要修改一下才能使用。不過,許多功能我都封裝成了獨立的 Python 腳本,如果需要的話可以自己做細微的修改。對於這個腳本,如果你有更好的建議和想法,可以跟我交流~

⑷ android自動化測試腳本 用elipse編譯 如何編寫代碼執行對手機中的圖片進行Zoom in 和zoom out

建議你到qun里問,這里有很多牛人。

⑸ 如何使用python做android的自動化測試

下面我們開始第一個簡單的Android UI自動化測試

1.使用adb命令連接真機或模擬器
2.打開uiautomatorviewer工具
3.使用uiautomatorviewer工具獲取應用的元素進行定位
4.簡單介紹unittest框架的使用方法
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試

1.使用adb命令連接真機或模擬器:
手機USB連接電腦,進入開發者模式;

cmd命令:adb devices ,查看手機是否連接

4.簡單介紹unittest框架的使用方法

⑹ 如何使用python做android的自動化測試

一、首先說說手機自動化測試的原理 1、手機自動化測試的原理為PC上一個控制端(測試工具)與手機上的一個agent端,通過串口、USB或者無線方式將PC與手機終端相連,然後應用測試工具向手機發送請求或者命令,手機收到命令或者請求後,交給agent端解析,然後agent將這些解析的命令下發給手機的各個功能模塊所能識別的命令,調用那些功能模塊模擬操作。完成這些操作後,手機會返回一些信息,agent可以抓取這些信息,然後傳回給PC端,這樣就完成了一個完整的手機自動化測試。 2、關鍵點在於agent,有的公司是向自己的手機終端的軟體功能模塊中植入測試程序響應代碼,有的公司可以利用MMI_Command的方式來控制手機終端;原理就是給手機提供一個響應的介面。 3、而對於PC控制端,這個測試腳本用各種編程語言都可以,看如何定義 4、而又的自動化測試設計成錄制的機制,說通俗點,就是記錄手工操作的鍵盤信息或者LCD的操作信息(LCD需要用到智能識別機制) 5、自動化測試框架的搭建方法是通用的,你需要有一套自己的測試框架才能保證自動化測試的順利開展。 二、Android自動化測試方向: 1、CTS,CTS 測試基於Android instrumentation 測試, 其又基於JUnit 測試。說白了, CTS 就是一堆單元測試用例。這也是Java 語言的擅長部分。 2、 Monkey工具,Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。 3、ASE,ASE 意思為Android 腳本環境, 即我們可以通過腳本(比如Python)調用Android 的功能,從而定製一些測試。比如打電話,發簡訊,瀏覽網頁,等。我們可以擴充它的API(Java 部分), 並用python 腳本調用這些API, 從而實現豐富的測試功能。用於API 部分可以訪問到Android 全部API, python 又能靈活部署測試,所以ASE 的擴展性非常好。 4、Robotium,該工具用於黑盒的自動化測試。可以在有源碼或者只有APK 的情況下對目標應用 進行測試。Robotimu 提供了模仿用戶操作行為的API,比如在某個控制項上點擊,輸入Text 等等。(推舉你可以研究一下這個工具,開源的,我有資料) 5、可以自己開發一個手機方面的自動化測試工具,原理上一樣的 如果你想要什麼資料的話或者想一起學習研究的話,可以給我發郵件:[email protected]

⑺ android自動化測試腳本怎麼寫

先學一門語言,然後再談寫腳本的事情。因為寫腳本不是寫作文,告訴你怎麼寫,你就會寫的。

⑻ android 怎麼做自動化測試

測試手段1:CTS
CTS原來只對OHA聯盟開放。最近Google把它Release出來了。似乎做過一些裁剪, 比如針對Java虛擬機的測試,似乎被刪除了,但我們一般用不著這么高深的。
針對每個版本,比如 2.1,2.2,Goolge發布了一個兼容性規范,而CTS測試就是用來確保某手機或者模擬器符合該兼容性規范。
CTS測試基於Android instrumentation測試,其又基於JUnit測試。說白了,CTS就是一堆單元測試用例。這也是Java語言的擅長部分。
在2.1模擬器上試驗了一下,有少數沒有通過。
目前CTS主要包括功能方面的測試,有少數的性能方面的測試。性能測試未來會越來越多。
總的來說,CTS跟WM的LTK測試還是弱了一些,畢竟還年輕。它只包括自動化測試,目的主要是保證API的兼容性。由於基於單元測試,CTS 本身不能用於測試多應用交互的情況。
對我們的幫助:
1)應用程序的開發者可以開發出自己應用的單元測試,並將其加入CTS測試集。
2)設備製造商可以通過周期性運行CTS測試,確保沒有對Android傷筋動骨。

測試手段2:Monkey
猴子測試本身非常簡單,就是模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等。看手機多長時間會出異常。
可以設置讓Monkey只測試某個應用,從而輔助應用程序的開發。
對我們的幫助:
1)應用程序的開發者可以測試自己應用的魯棒性。
2)設備製造商可以使用猴子對自己的測試施行壓力測試。看設備能堅持多久。

測試手段3:ASE
ASE 意思為Android腳本環境,即我們可以通過腳本(比如 Python)調用Android的功能,從而定製一些測試。比如打電話,發簡訊,瀏覽網頁,等。
個人覺得這對復現某些偶發故障非常有幫忙。
目前ASE還處於它的成長期,希望它不斷成熟,為開發者提供更多便利。

測試手段4:其它
可以寫一個Android應用程序,命令行腳本等,在其他方法不能實現時,就只能用這些方法了。

總結
一方面我們要充分利用Android提供的現成測試,密切關注其進展,另一方面,我們要學習好java/Python編程,必要時,自己開發自己的測試用例。
作為模塊開發者,一定要寫自己的單元測試,一方面可以保證自己的代碼沒有缺陷,另一方面,也為系統級測試提供素材。
當然,自動化測試關鍵還在於意識,創意比實現更重要。

⑼ Android自動化測試工具有哪些

1、 Robotium 安卓測試工具

Robotium是一款經常使用的自動化測試工具軟體,支持Android。
Robotium是一個免費的Android UI測試工具。它適用於為不同的安卓版本和子版本測試自動化。軟體開發人員經常把它描述為Android Selenium。Robotium測試是用java寫的。事實上,Robotium是一個單元測試庫。
但通過Robotium創建測試需要花費很多時間和努力,因為為了自動化測試還需要修改程序源代碼。該工具也不適合與系統軟體的交互,它不能鎖定和解鎖智能手機或平板電腦。Robotium也沒有錄制回放功能,也不提供截圖。
2、MonkeyRunner 安卓應用測試

Monkeyrunner是一款流行的Android測試工具,用於自動化功能測試。
這個工具比Robotium更低一層次。這個不必處理源代碼來做自動化測試。這個測試可以用Python寫,並且可以使用錄制工具來創建測試。
Monkeyrunner可以連接到電腦或模擬真實設備運行測試。該工具有一個介面,用它來控制智能手機,平板電腦或外部模擬器的Android代碼。
這個測試工具的缺點是,它必須為每個設備編寫腳本。另一個問題是,每次測試程序的用戶界面變化都需要調整測試腳本。
3、Ronaorex 安卓測試應用工具
Ranrex 是一款不僅可以支持最新Android版本,也支持從Android2.2開始的早期版本和分支版本。
Ranorex的優勢是它有詳細的截屏報告。它能通過Wifi連接智能手機和平板電腦。
一個自動化測試工程師通過這個Android工具可以不用XML數據格式來詳細編寫數據驅動的測試。Ranorex工作室使自動化測試工程師只要點擊滑鼠就可容易地創建測試。它允許詳細聲明額外的程序模塊,來用於在後期開發周期中測試更復雜的場景。
它是一個商業的移動應用工具,其許可價格為1990歐元。不過Ranorex搜索功能相當慢;它需要30秒來完成這樣的操作。我們必須為Ranorex配備apk文件設備,否則無法通過這個工具實現自動化測試,因為它只能在APK文件設備上工作。

⑽ 想要學習編寫android自動化腳本,跪求相關的資料和注意事項。

這個是學習線路圖,我這還有資料,你如果感覺線路圖可以的話,給我發郵件,我給你發資料。[email protected]

熱點內容
javadebug 發布:2025-03-16 07:16:21 瀏覽:283
怎麼搭建linux伺服器ftp 發布:2025-03-16 07:07:38 瀏覽:988
晶元存儲原理 發布:2025-03-16 06:58:21 瀏覽:284
c語言中的整型 發布:2025-03-16 06:40:48 瀏覽:184
分部資料庫伺服器的IP地址有效 發布:2025-03-16 06:33:40 瀏覽:193
安卓項目如何配置tomacat 發布:2025-03-16 06:31:13 瀏覽:431
寫腳本測試 發布:2025-03-16 06:20:07 瀏覽:780
多個撥號寬頻如何配置 發布:2025-03-16 05:51:35 瀏覽:688
管理員c語言 發布:2025-03-16 05:40:17 瀏覽:342
安卓軟體上的圖案如何更改 發布:2025-03-16 05:35:57 瀏覽:748