android介面測試
⑴ android的cts測試到底有多細
解決方案1:
以wifi測試為列android.net.wifi模塊的cts測試結果如下:android.app.cts.SystemFeaturesTest--
testBluetoothFeaturepass -- testCameraFeaturespass -- ...
以wifi測試為列
android.net.wifi模塊的cts測試結果如下:
android.app.cts.SystemFeaturesTest
-- testBluetoothFeature
pass
-- testCameraFeatures
pass
-- testFeatureNamespaces
pass
-- testLiveWallpaperFeature
pass
-- testLocationFeatures
pass
-- testNfcFeatures
pass
-- testScreenFeatures
pass
-- testSensorFeatures
pass
-- testSipFeatures
pass
-- testTelephonyFeatures
pass
-- testTouchScreenFeatures
pass
-- testUsbAccessory
pass
-- testWifiFeature
pass
android.net.http.cts.ApacheHttpClientTest
--
pass
-- testExecute_withMobile
pass
-- testExecute_withWifi
pass
android.net.wifi.cts.ConcurrencyTest
--
pass
-- testConcurrency
pass
android.net.wifi.cts.ScanResultTest
--
pass
-- testScanResultProperties
pass
android.net.wifi.cts.SupplicantStateTest
--
pass
-- testIsValidState
pass
android.net.wifi.cts.WifiConfigurationTest
--
pass
-- testWifiConfiguration
pass
android.net.wifi.cts.WifiInfoTest
--
pass
-- testWifiInfoProperties
pass
android.net.wifi.cts.WifiManagerTest
--
pass
-- testSignal
pass
-- testWifiManagerActions
pass
-- testWifiManagerNetWork
pass
-- testWifiManagerProperties
pass
android.net.wifi.cts.WifiManager_WifiLockTest
--
pass
-- testWifiLock
pass
上面的assert部分為斷言,用來檢查cts的測試結果是pass還是fail。你會發現cts的測試比較簡單,它只能保證 你的android設備支持wifi,和中間件介面控制wifi的工作。
搜遍了wifi的全部測試模塊,都沒有找到哪裡驗證了 WifiConfiguration.KeyMgmt
⑵ 怎樣使用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是最合適的解決方案。
⑶ android的cts測試到底有多細
1.下載完整的cts測試工具包,方式有兩種:
a.在現有代碼上編譯,代碼版本與目標機器版本一致;
b.在Google官網下載:http://source.android.com/compatibility/downloads.html,Compatibility
Test Suite (CTS)即可。
2.下載media測試內容,還是上邊的官網,在網頁最下邊:
CTS Media Files
These media files are required for the CTS media stress tests.
CTS Media 1.0
3.連接手機與電腦(至少一台手機)
4.測試前准備
android-cts/repository/testcases中的.apk和CtsDeviceAdmin.apk
安裝完成以上apk後,在手機端操作:
a.設置->輔助程序->Delegating Accessibility Service,打開;
b.設置->安全->設備管理器->CTS相關的兩個選項都激活;
c.打開USB調試模式;
d.保持屏幕喚醒;
e.允許模仿位置;
f.切換至英文模式US。
5.進入cts控制台
執行android-cts/tools/cts-tradefed
dev@linux -dev:~/android/CTS/android-cts/tools$ ./cts-tradefed
09-0509:20:52 I/: Detectednew device c8090fe4
09-0509:20:52 I/: Detectednew device5348300e
Android CTS 4.2_r1
我現在連接著兩台設備,都檢測到了。
6.開始進行CTS測試
首先,在控制台中輸入help看這個控制台都能幹什麼。
cts-tf > help
CTS-tradefed host version 4.2_r1
CTS-tradefed is the test harness for running the Android Compatibility
Suite, built on top of the tradefed framework.
Available commands and options
Host:
help: show this message
help all: show the complete tradefed help
exit: gracefully exit the cts console, waiting till all invocations are
complete
Run:
run cts --plan test_plan_name: run a test plan
run cts --package/-p: run a CTS test package
run cts --class/-c [--method/-m]: run a specific test class
and/ormethod
run cts --continue-session session_ID: run all not executed tests from a
previous CTS session
run cts [options] --serial/s device_ID: run CTS on specified device
run cts [options] --shards number_of_shards: shard a CTS run into given
number of independent chunks, to run on multiple devices inparallel
run cts --help/--help-all: get more help on running CTS
List:
l/list d/devices: list connected devices and their state
l/list packages: list CTS test packages
l/list p/plans: list CTS test plans
l/list i/invocations: list invocations aka CTS test runs currentlyin
progress
l/list c/commands: list commands: aka CTS test run commands currently in
the queue waiting to be allocated devices
l/list r/results: list CTS results currently present in the repository
Add:
add derivedplan --plan plane_name --session/-s session_id-r
[pass/fail/notExecuted/timeout]: derive a plan from the given session
Dump:
d/mp l/logs: mp the tradefed logsfor all running invocations
Options:
--disable-reboot: Do not reboot device after running some amount of
tests.
run cts --plan + 運行某個plan,查看當前支持的plan,運行l
p,實際上所有的plan存放在android-cts/repository/plans;
run cts --package/-p 運行某一個測試包;
run cts --class/-c [--method/-m] 運行某一個測試類或測試方法;
run cts --continue-session session_ID 繼續運行之前沒有完成的CTS測試,要知道它的session_ID;
run cts [options] --serial/s device_ID 在某個串號的設備上進行CTS測試,對應多個機器的時候,通過adb
devices能夠查看當前連接的所有設備的串號;
run cts [options] --shards number_of_shards 在多個設備上同時運行CTS測試,如run cts --plan
CTS --shards 2,在兩個設備上同時運行;
run cts --help/--help-all 展示更多幫助
查看列表:
查看行為是l/list,接不同的參數顯示對應信息。
d/devices 當前連接的設備,效果同adb devices,不過信息更詳細,還有設備電量信息;
packages 當前CTS plan的所有測試包;
p/plan 當前所支持的CTS plan有哪些;
i/invocations 當前CTS的運行狀態;
c/commands 展示出用戶輸入過的命令;
r/results 展示以往的測試結果
Session Pass Fail Not Executed Start time Plan name Device serial(s)
0 17720 239 12 2013.08.24_18.23.23 CTS c8090fe4
1 17907 64 0 2013.09.04_17.51.15 CTS FUSC85YLYPAMRC69
需要特別關注的幾點注意事項:
首先,手機的功能一定要完整,WIFI BT 3G CAMERA等;
手機要切換至英文語言;
連接到可用WIFI;
有SIM卡,並能夠打電話發簡訊;
對於屏幕密度,目前CTS中最高支持320,但實際上Google已經添加了對480,也就是1080p的支持;
會檢測Fingerprint,注意廠家名;
要保證能夠訪問到www.google.com;
實戰演戲:
連接兩台手機後,進入cts控制台:
run cts --plan CTS --shards 2
兩台手機上會同時跑起CTS測試,大概5小時候測試完成,生成測試報告,保存在results下。
⑷ 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種語言來編寫你的測試腳本。
⑸ android的cts測試到底有多細
以wifi測試為列android.net.wifi模塊的cts測試結果如下:android.app.cts.SystemFeaturesTest-- testBluetoothFeaturepass -- testCameraFeaturespass -- ...
以wifi測試為列
android.net.wifi模塊的cts測試結果如下:
android.app.cts.SystemFeaturesTest
-- testBluetoothFeature
pass
-- testCameraFeatures
pass
-- testFeatureNamespaces
pass
-- testLiveWallpaperFeature
pass
-- testLocationFeatures
pass
-- testNfcFeatures
pass
-- testScreenFeatures
pass
-- testSensorFeatures
pass
-- testSipFeatures
pass
-- testTelephonyFeatures
pass
-- testTouchScreenFeatures
pass
-- testUsbAccessory
pass
-- testWifiFeature
pass
android.net.http.cts.ApacheHttpClientTest
--
pass
-- testExecute_withMobile
pass
-- testExecute_withWifi
pass
android.net.wifi.cts.ConcurrencyTest
--
pass
-- testConcurrency
pass
android.net.wifi.cts.ScanResultTest
--
pass
-- testScanResultProperties
pass
android.net.wifi.cts.SupplicantStateTest
--
pass
-- testIsValidState
pass
android.net.wifi.cts.WifiConfigurationTest
--
pass
-- testWifiConfiguration
pass
android.net.wifi.cts.WifiInfoTest
--
pass
-- testWifiInfoProperties
pass
android.net.wifi.cts.WifiManagerTest
--
pass
-- testSignal
pass
-- testWifiManagerActions
pass
-- testWifiManagerNetWork
pass
-- testWifiManagerProperties
pass
android.net.wifi.cts.WifiManager_WifiLockTest
--
pass
-- testWifiLock
pass
上面的assert部分為斷言,用來檢查cts的測試結果是pass還是fail。你會發現cts的測試比較簡單,它只能保證 你的android設備支持wifi,和中間件介面控制wifi的工作。
搜遍了wifi的全部測試模塊,都沒有找到哪裡驗證了 WifiConfiguration.KeyMgmt (wifi鑒權)。
⑹ android studio怎麼測試介面
1、在線安裝 從Android studio的菜單欄里選擇「Preferences」,然後點擊「Plugins」選擇底部的「Browser repositories」再搜索框中輸入parcelable,按回車選擇搜索結果的第一個,android parcelable code generator點擊右邊的「install plugin」按鈕進行安裝即可。 2.在entity包下新建一個測試的實體類:Person.java 添加三個私有變數lastName,firstName,age;並設置添加其get set方法。 8、在Person.java 文件中,空白地方滑鼠右擊,選擇「Generat...」然後選擇「parcelable」後選擇需要序列化的欄位,點擊「OK」 9、最後生成parcelable介面代碼如圖:
⑺ 如何使用python做android的自動化測試
目前大家對Python都有一個共識,就是他對測試非常有用,自動化測試里Python用途也很廣,但是Python到底怎麼進行自動化測試呢?今天就簡單的向大家介紹一下怎麼使用Python進行自動化測試,本文只是自己的一點點分享,若有錯誤,請大家多多批評指正。這里主要介紹的是一些Python測試的框架
1、單元測試
a、unittest :Python自帶的單元測試框架
b、pyunit:Junit的Python版本
2、使用Pyhon進行Windows GUI測試
這部分的功能主要就是和大家平時使用的QTP類似。在Windows下我們可以使用pywinauto這個開源的框架:
來個小例子:
app.Notepad.MenuSelect("Help->About Notepad")
app.AboutNotepad.OK.Click()
app.Notepad.Edit.TypeKeys ("pywinauto Works!", with_spaces = True)
呵呵,強大吧
3、使用Python進行Web自動化測試
使用Python進行Web自動化測試的工具有很多,這里就向大家推薦一下我比較熟悉的Selenium(Web Driver)吧。