日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android自动化测试探索

發(fā)布時間:2024/7/5 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android自动化测试探索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

通常來說,我們開發(fā)完成產(chǎn)品之后,都是由測試組或者是我們自己點一點,基本上沒有問題了就開始上線。但是,隨著時間的堆疊,一款產(chǎn)品的功能也越來越多。這時,我們?yōu)榱吮WC產(chǎn)品的質(zhì)量,就需要在每次測試時將所有的流程都走一遍。然而,對于一款龐大的產(chǎn)品來說這是困難又復雜的。因為我們自己手動測試需要花費大量的時間來完成主業(yè)務測試這種重復性工作。為了保證效率以及解決成本,我們就需要考慮將這些過程采用自動化測試來完成。

自動化測試介紹

何為自動化測試?自動化測試就是通過計算機將我們?nèi)斯げ僮鞯膭幼髯詣油瓿?#xff0c;比如自動點擊,自動填入文本等等。Android也提供了強大的自動化測試工具,那就是UIAutomator。官方介紹文檔為:https://developer.android.google.cn/training/testing/ui-testing/uiautomator-testing.html#setup。

UIAutomator介紹

你可能會有疑問,這個自動化測試能完成什么內(nèi)容?我來舉個簡單的例子:

這種登錄界面就算沒做過,但一定也見過。我們一般會在測試時輸入用戶名,密碼,然后登錄。那么自動化測試可以干什么呢?它可以自己輸入用戶名、密碼,然后登錄,一氣呵成。你可能會覺得,就這還需要上自動化測試?NoNoNo,我這里只是舉個例子,它能幫你完成任何事情。甚至是喚醒屏幕,輸入圖形驗證碼等都可以完成。

說到這里,肯定有同學已經(jīng)躍躍欲試了,憋著急,慢慢來。

UIAutomator的使用

首先我們還是需要照著官方文檔學習,上面已經(jīng)提供過地址,將它打開。

配置

在Android的APP module中,加入以下依賴:

dependencies {...androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1' }

輔助工具

因為自動化測試是自動完成的,所以它需要先找到對應的View才能進行操作。然而怎么指定應該查找哪個View呢,Android提供了輔助工具uiautomatorviewer。相信很多同學對這個工具很熟悉。

它位于<android-sdk>/tools/目錄下,使用命令行將其啟動:

$ uiautomatorviewer

啟動后找到Device Screenshot按鈕,uiautomatorviewer將會通過adb開始截取手機上的界面,并開始分析View樹,就像圖中所示。這時隨便選擇一個空間,在右下角便會列出該View的一些關鍵信息。其中圖中方框所標識的便是基本的,也是最常用的幾項信息。這些信息用來在做自動化測試時給UIAutomator提供關鍵的查找信息。稍后便會用到。

創(chuàng)建測試類

我們需要專門搞一個類用來做自動化測試。如果使用的是AndroidStudio來進行開發(fā),那么在創(chuàng)建工程之初,AndroidStudio會自動創(chuàng)建好一個Android的測試類,就像下面這樣:

我們平常開發(fā)都是在main文件夾里開發(fā),平常不會注意到另外兩個文件夾androidTest以及test是做什么用的,今天你將會了解到它們是用來做什么的。

首先我們做Android測試所用的類就是位于androidTest文件夾下的那個自動創(chuàng)建好的類,我們將其打開:

在示例類ExampleInstrumentedTest的頂部有兩個標注:

@RunWith(AndroidJUnit4.class) @SdkSuppress(minSdkVersion = 18)

這兩樣是必須要配置的,Android的自動化測試框架是基于Android Testing Support Library的,它只能運行在Android4.3以上的設備,并且它需要和AndroidJUnitRunner一起工作才能完成測試。

如果是自己創(chuàng)建的類,那么一定要記得在類的上面添加注解:@RunWith(AndroidJUnit4.class),除此之外還需要將AndroidJUnitRunner設置為默認的TestRunner。

將AndroidJUnitRunner設置為默認的TestRunner需要在app的build.gradle文件中加入以下配置:

android {defaultConfig {testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"} }

好了,我們的測試準備工作已經(jīng)完成,接下來就開始寫測試執(zhí)行過程了。

測試邏輯過程

這里還是使用登錄頁面做示例,該登錄頁面是由AndroidStudio模板自動生成的。

我們使用自動化測試完成的測試功能有,填入用戶名、密碼,然后登錄。

我們需要先啟動uiautomatorviewer:

啟動之后的界面:

我們點擊圖中箭頭所指的按鈕,出現(xiàn)以下界面:

在左邊的圖中選擇我們第一個要輸入文字的EditText輸入框,我們可以看到右邊出現(xiàn)了這個View層級的屬性結(jié)構(gòu)以及該View的一些基本屬性,在這里的的EditText的index為0,resource-id為com.sahadev.autotestforlogin:id/password,還有它是哪個類:android.widget.EditText。

得知這些基本信息之后,我們開始了解一下測試代碼的執(zhí)行過程:

  • 1.首先需要獲得可以訪問設備的上下文對象UiDevice,UiDevice的實例通過靜態(tài)方法getInstance()獲得,該方法需要傳入一個Instrumentation對象。
  • 2.通過UiDevice的findObject()來找到UiObject,這個UiObject代表了剛剛我們指定的EditText。
  • 3.通過UiObject來模擬用戶的真實操作,比如填入文本,或者點擊等操作。由于這里是EditText,所以我們的工作就是填入文本,使用UiObject的setText()方法即可。

測試邏輯實現(xiàn)

有了以上的知識之后,我們來實現(xiàn)這個登錄過程。

1.首先獲得UiDevice對象:

mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());

2.通過指定的條件查找代表EditText的UiObject:

UiObject email = mDevice.findObject(new UiSelector().resourceId("com.sahadev.autotestforlogin:id/email"));

3.往EditText中寫入郵箱地址:

email.setText("sahadev@foxmail.com");

好了,到這里如果執(zhí)行的話,系統(tǒng)就會幫我們自動填入這個郵箱地址了。接下來我們的工作就是繼續(xù)填入密碼,然后點擊登錄。我們來完成剩下的代碼。完整的代碼如下:

package com.sahadev.autotestforlogin;import android.support.test.InstrumentationRegistry; import android.support.test.filters.SdkSuppress; import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject; import android.support.test.uiautomator.UiSelector;import org.junit.Before; import org.junit.runner.RunWith;/*** Instrumentation test, which will execute on an Android device.** @see <a href="http://d.android.com/tools/testing">Testing documentation</a>*/ @RunWith(AndroidJUnit4.class) @SdkSuppress(minSdkVersion = 18) public class ExampleInstrumentedTest {private UiDevice mDevice;@Beforepublic void startMainActivityFromHomeScreen() {mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());UiObject email = mDevice.findObject(new UiSelector().resourceId("com.sahadev.autotestforlogin:id/email"));//填入郵箱地址email.setText("sahadev@foxmail.com");UiObject password = mDevice.findObject(new UiSelector().resourceId("com.sahadev.autotestforlogin:id/password"));//填入密碼password.setText("123456");UiObject loginButton = mDevice.findObject(new UiSelector().resourceId("com.sahadev.autotestforlogin:id/email_sign_in_button"));//點擊登錄loginButton.click();} }

基本的測試代碼已經(jīng)完成,接下來就是如何運行了。在AndroidStudio中點擊運行按鈕即可:

運行效果如下:

怎么樣,有沒有很想試一把的感覺呢?慢慢積累,它就是一個很龐大的工程了。今天的文章只是帶大家入一下門,這個自動化測試工具本身很強大,可以完成很多工作。有更多的問題可以加群討論。UIAutomator的官方介紹文檔地址為:https://developer.android.google.cn/training/testing/ui-testing/uiautomator-testing.html,更多內(nèi)容請點擊查看。


我建了一個QQ群,歡迎對學習有興趣的同學加入。我們可以一起探討、深究、掌握那些我們會用到的技術(shù),讓自己不至于太落伍。

總結(jié)

以上是生活随笔為你收集整理的Android自动化测试探索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av色先锋 | 五十路中文字幕 | 精品日韩制服无码久久久久久 | 一级不卡毛片 | 在线观看免费大片 | av成人在线电影 | 永久精品 | av资源首页| 男人的天堂网av | 成人动漫一区 | 少妇高潮淫片免费观看 | 无码久久av一区二区三区 | 中文字幕 国产 | 青青草手机视频在线观看 | 国产精品熟女久久久久久 | 尤物视频在线免费观看 | 美女试爆场恐怖电影在线观看 | 国产男女无套 | 69视频在线| 黄色小视频免费看 | 日韩中文字幕免费在线观看 | 国产二区在线播放 | 成人动漫在线观看视频 | 风间由美av | 欧美色图在线观看 | 国产天堂资源 | 在线看黄网址 | 青草一区 | 国产精品视频在线观看 | 五十路av在线 | 美女视频一区二区 | 亚洲精品国产精品乱码视色 | 黄色三级网络 | 日韩123区| 男朋友是消防员第一季 | av999| www伊人 | 亚洲一区二区蜜桃 | 91香蕉国产在线观看软件 | 视频免费在线观看 | 激情婷婷综合 | 免费一级网站 | 欧美老司机 | 天堂在线免费视频 | 午夜精品一区二区三区在线观看 | 毛片www | 久久夜视频 | 不卡三区| 可以免费看污视频的网站 | 色久天堂 | 午夜精品久久久久久99热 | 丰满少妇aaaaaa爰片毛片 | a少妇 | 理论片第一页 | 成人自拍网站 | 毛片基地免费 | 国产精品二 | 色中文| 天天射天天射天天射 | 欧美一区二区三区 | 黄色三级视频 | 手机看片日韩 | 亚洲国产精品久久久久爰色欲 | 99国产视频 | 国产人妻一区二区 | 在线观看黄色 | 中文字幕在线观看高清 | 亚洲一区二区不卡在线观看 | 四季av一区二区三区免费观看 | 欧美一级黄色片在线观看 | av在线免费观看一区 | 成年视频在线播放 | 破处视频在线观看 | 欧美黄色一级生活片 | 黄wwwww| 免费av一区二区三区 | 久久天堂网 | 免费h漫禁漫天天堂 | 日韩高清影院 | 97超碰总站 | 精品国产三级片在线观看 | 国产剧情在线 | 99久99| 日韩免费av在线 | 久久在线视频免费观看 | www.四虎精品 | 精品人妻无码专区视频 | 国产av电影一区 | 神马久久久久久久久久久 | 麻豆传媒网站入口 | 欧美黑吊大战白妞 | 欧美色呦呦 | 天堂中文在线8 | 国产尻逼视频 | 扒开腿揉捏花蒂h | 五月激情综合婷婷 | 亚洲色图第三页 | 欧美婷婷 | 国产在线一区二 |