當前位置:首頁 » 安卓系統 » androidui自動化

androidui自動化

發布時間: 2022-08-21 13:11:57

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

開始第一個簡單的Android UI自動化測試 1.使用adb命令連接真機或模擬器 2.打開uiautomatorviewer工具 3.使用uiautomatorviewer工具獲取應用的元素進行定位 4.簡單介紹unittest框架的使用方法

B. Android 手機自動化測試工具有哪些

Robotium是一款經常使用的自動化測試工具軟體,支持Android。

Robotium是一個免費的Android UI測試工具。它適用於為不同的安卓版本和子版本測試自動化。軟體開發人員經常把它描述為Android Selenium。Robotium測試是用java寫的。事實上,Robotium是一個單元測試庫。

但通過Robotium創建測試需要花費很多時間和努力,因為為了自動化測試還需要修改程序源代碼。該工具也不適合與系統軟體的交互,它不能鎖定和解鎖智能手機或平板電腦。Robotium也沒有錄制回放功能,也不提供截圖

C. 怎樣看android自動化uiautomator源碼

Google在sdk4.0以後提供了一個自動化解決方案uiautomator:

優點:可以跨應用了;這可是親生的;

缺點:必須sdk4.0以上版本;要想實現的好,最好有開發配合;java項目編譯為jar後需要push到手機才能運行,也就是說必須列印日誌暴力調試。

D. Android 手機自動化測試工具有哪幾種

monkey(google自己的),monkeyrunner,uiautomator(google自己的),robotium,appium,cafe(網路研發),Espresso(google自己的),Athrun(淘寶研發),seeTest

monkey&monkeyrunner 基於坐標點的測試工具
Uiautomator&robotium 基於控制項的測試工具
appium 通過driver&中間件實現跨平台測試工具(支持android/Ios等)
cafe通過AIDL實現進程間通信
Espresso 基於Android Instrumentation framework實現的Android UI自動化測試框架,不支持跨進程
SeeTest 基於圖像元素的測試工具

E. 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文件設備上工作。

F. 怎樣使用Appium進行Android自動化測試

1、Robotium——安卓測試工具 Robotium是安卓系統最常用的自動化測試工具,並且是一款免費的安卓UI測試工具。它適合於各種不同的安卓版本及其下行版本。軟體開發者經常把它稱作安卓。Robotium創建的測試使用Java寫的。事實上,Robotium是一個個體測試資料庫。 但是Robotium需要花費很長時間努力去創建測試,就像為了自動化程序創建的源代碼。它不適合互動的軟體系統,不能鎖住和解鎖智能手機。Robotium沒有記錄和播放功能,它不支持截屏。 2、MonkeyRunner——安卓App測試工具 MonkeyRunner是最流行的有自動化功能的安卓軟體測試工具。MonkeyRunner比起Robotium要低端一些。它並不處理源代碼。測試創建是用Python寫的,其中可能使用記錄工具,為了創建測試。MonkeyRunner可以在連接狀態的PC或者模擬器上運行測試。它有一個應用程序介面可以控制智能手機或者模擬器。但手機APP測試工具的最大缺陷是每個設備都要編寫腳本。另一個缺陷就是,每次測試程序發生改變時都要調整。 3、Ranorex——安卓App測試工具 Ranorex是一個不錯的自動化測試工具,不僅最新版本,Android 2.2.以上版本都是可以的。Ranorex的好處在於它有詳細的截屏報告。他可以通過WiFi上網連接智能手機或者平板電腦。通過這個 Android 工具,自動化的測試工程師可以詳細描述數據驅動測試,但不包括 XML 數據格式。Ranorex可以很輕松地創建測試,自動化測試工程師只需點擊滑鼠。Ranorex允許附加的程序模塊。這個模塊可以被用於開發更為復雜的測試場景中。Ranorex是一個商業化的移動應用程序的工具;其許可價格是 1990歐元/年。Ranorex搜索相當慢;它需要 30 秒的時間來執行操作。其中一個必須為Ranorex文書的 APK 文件。否則它不能通過這個工具進行自動化測試,它只能在APK 文件下工作。 4、Appium——安卓自動化測試工具 Appium是為iOS和安卓系統創建的自動化測試框架,是一個免費工具。它支持 2.3 及更高版本的 Android 系統。Appium利用WebDriver界面運行測試。它支持許多編程語言,如 Java、 C#、Ruby和其他的WebDriver資料庫。它可以在移動設備上控制 Safari 和Chrome。但是,一些自動化的測試工程師抱怨它提供的報告不足。它的缺點也減少了對於XPath在移動設備上的支持。 5、UI Automator——安卓自動化測試 谷歌最近推出了這一工具。它支持從4.1開始的安卓版本。我們應該選擇另一個更早期的安卓應用程序進行自動化測試。UI Automator能夠與各類安卓系統兼容,包括系統的應用程序。這使得UI Automator可以鎖定和解鎖智能手機或平板電腦。通過該工具創建的腳本可以在許多不同的安卓平台上執行。它允許復制用戶的操作復雜的序列。UI Automator也可以利用外部按鈕的裝置調節,打開和關閉設備的按鈕。 UI Automator可以與測試框架TestNG集成。在這種情況下,用戶界面自動可以生成內容豐富和詳細的報告,類似於由Ranorex生成的報告。此工具搜索速度還非常快。在許多安卓平台上測試後,軟體測試專家認為UI Automator是質量最好的移動應用程序。它是安卓做好的應用程序之一,它由谷歌推出。 通常大約 80%的新軟體的 bug 都會重現支持的平台。其餘 20%出現在其他平台上。這意味著,在大多數情況下,事先測試軟體產品比盲目使用更好。 目前, Android 4.1 版本安裝了約 66%操作系統的設備。這就是為什麼許多自動化的測試工程師經常決定UI Automator是最合適的解決方案。

G. android ui自動化怎麼判斷結果對錯

在使用前,需要具備以下條件:
最新版本的 Android Studio
運行Android 4.3或者更高版本的設備或者虛擬器
理解 JUnit

H. 用android uiautomator做自動化測試,怎麼連接真機進行

Google在sdk4.0以後提供了一個自動化解決方案uiautomator:

優點:可以跨應用了;這可是親生的;

缺點:必須sdk4.0以上版本;要想實現的好,最好有開發配合;java項目編譯為jar後需要push到手機才能運行,也就是說必須列印日誌暴力調試。

Appium基於Android InstrumentationFramework和UIAutomator,也就是說這個工具是可以跨應用的。說遠了,好吧,為了幫大家更容易理解appium的使用,我這里就講一下uiautomator的使用方法。

你應該有android-sdk吧,升級到4.0以上,進入目錄android-sdk ools,你會看到兩個文件:

traceview.bat 和 uiautomatorviewer.bat,這倆文件讓你想起了monkeyrunner了吧,是的,traceview.bat就對應於hierarchyviewer.bat,用來查看程序的ui界面的,通常也是使用管理員許可權啟動的。

好了,現在用eclipse創建一個java project,是的,你沒看錯,是java project不是android project,添加引用:

在project.properties中內容為:

# Project target.

target=android-16

這里的android-16需要和之前的android.jar和uiautomator.jar位置相一致。

然後呢?寫代碼吧,建立一個類,得,發個給大家參考:

packagecom.uia.example.my;

importorg.apache.http.util.EncodingUtils;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.graphics.Rect;

importandroid.os.Environment;

importcom.android.uiautomator.core.UiObject;

importcom.android.uiautomator.core.UiObjectNotFoundException;

importcom.android.uiautomator.core.UiScrollable;

importcom.android.uiautomator.core.UiSelector;

importcom.android.uiautomator.testrunner.UiAutomatorTestCase;

importjava.io.File;

importjava.io.FileOutputStream;

importjava.io.IOException;

{

publicStringsLog;

publicFilefout=null;

=null;

publicvoidwrite2file(String filename,String sData)

{

String sLog="";

//初始化日誌文件

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

sLog = Environment.getExternalStorageDirectory().getAbsolutePath();

try{

fout=newFile(sLog,filename);

outStream=newFileOutputStream(fout,true);//此處的true是append

sData=sData +" ";

outStream.write(sData.getBytes());

outStream.flush();

outStream.close();

fout=null;

}

catch(Exception e){

e.printStackTrace();

}

}else{

System.out.println("該手機沒有SD卡");

}

}

publicvoidtestDemo() {

//1.啟動app

getUiDevice().pressHome();

UiObject allAppsButton =newUiObject(newUiSelector().description("Apps"));

allAppsButton.clickAndWaitForNewWindow();

UiObject appsTab =newUiObject(newUiSelector().text("Apps"));

appsTab.click();

UiScrollable appViews =newUiScrollable(newUiSelector().scrollable(true));

UiObject settingsApp = appViews.getChildByText(newUiSelector().className(android.widget.TextView.class.getName()),"Efilm");

settingsApp.clickAndWaitForNewWindow();

//2.進入主界面

System.out.println("into main view");

System.out.println(getUiDevice().waitForWindowUpdate("com.eshore.efilm", 60000));

System.out.println("intoed main view");

UiObject tv1 =newUiObject(newUiSelector().text("影院"));

tv1.click();

//3.點擊影院

UiObject oyy=newUiObject(newUiSelector().description("cinema_row"));

System.out.println("wait yingyuan come out");

oyy.waitForExists(60000);

System.out.println("yingyuan come out");

oyy.clickAndWaitForNewWindow();

System.out.println("click yingyuan");

//4.場次

UiObject occ=newUiObject(newUiSelector().description("LinearLayout10"));

System.out.println("wait changci come out");

oyy.waitForExists(60000);

System.out.println("changci come out");

occ.clickAndWaitForNewWindow();

System.out.println("click changci");

//5.座位

UiObject oseat=newUiObject(newUiSelector().description("cinema_shows_list_item").index(0).childSelector(newUiSelector().description("LinearLayout10")));

System.out.println("wait seat come out");

oseat.waitForExists(5000);

inth=getUiDevice().getDisplayHeight();

intw=getUiDevice().getDisplayWidth();

System.out.println("(h/2,w/2)="+h/2+","+w/2);

getUiDevice().click(h/2,w/2);

//System.out.println("seat count:"+String.valueOf(oseat.getChildCount()));

//System.out.println("seat getText:"+ oseat.getText());

//截座點陣圖

Process process;

try{

process = Runtime.getRuntime().exec("screencap /mnt/sdcard/EfilmFailSnapShot01.png");

try{

process.waitFor();

}catch(InterruptedException e) {//TODOAuto-generated catch block

e.printStackTrace();

}

}catch(IOException e) {

//TODOAuto-generated catch block

e.printStackTrace();

}

//takeScreenShots("EfilmSeatSnapShot");

}

}

這個例子是隨便寫的,可能不夠嚴謹。大體就這么個情況吧。下一步就是編譯執行了,先插上手機usb介面,然後打開cmd,執行:

找到SDKID,也就是android create中的-t參數:

cd C: PROGRAMandroid-sdk ools

android list

找到t參數的值以後:

cd C: PROGRAMandroid-sdk ools

android create uitest-project -n TAppWorkAssistV1 -t 25 -p C:android自動化Tv2.0TestSetting

cd C:android自動化Tv2.0TestSetting

ant build

cd C:android自動化Tv2.0TestSettingin

adb push TAppWorkAssistV1.jar /data/local/tmp/

adb shell uiautomator runtest TAppWorkAssistV1.jar -c com.uia.example.my. TAppWorkAssistV1

看了看,好像沒有什麼特別值得解釋的

-n TAppWorkAssistV1:類名

-p: 項目所在目錄

Ant build 把這個類編譯成一個jar包:TAppWorkAssistV1.jar

然後把jar包push到手機上,調用執行這個類就可以了

大致是這么個步驟,不過有一個非常重要的細節,就是如果你需要更省心,就最好把界面元素,無論動態的還是布局文件中的,都加上content-description屬性,並保證唯一性,根據:

UiSelector:description(String desc)

Set the search criteria to match thecontent-description property for a widget.

那就可以統一隻使用這一個引用界面元素的方法就行了,就不用去想方設法利用其它的屬性來引用了。

熱點內容
壓縮皇冠 發布:2025-01-16 01:51:27 瀏覽:274
全鍵盤編程鍵盤 發布:2025-01-16 01:38:59 瀏覽:422
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:228
vb編程步驟 發布:2025-01-16 01:11:58 瀏覽:202
bb霜解壓 發布:2025-01-16 01:11:11 瀏覽:597
編程懟人 發布:2025-01-16 00:53:08 瀏覽:761
建立共享伺服器地址 發布:2025-01-16 00:26:40 瀏覽:565
android開機動畫修改 發布:2025-01-16 00:26:26 瀏覽:872
怎麼解壓pc版游戲 發布:2025-01-16 00:16:32 瀏覽:122
v9更新到91有方舟編譯器嗎 發布:2025-01-16 00:11:49 瀏覽:500