1. 程式人生 > >Uiautomator-1.0入門

Uiautomator-1.0入門

關於 自動化測試   其實並不是很難   主要環境配置起來 很麻煩   網上有不少部落格 但有些細節沒有說到 反倒API說了一大推  環境搭建起來了 其他就很簡單了

我們會用到 ANT  可以把 寫的測試類打成Jar包  Uiautomator-1.0 並不可以直接執行到手機裡 需要藉助ant 打成jar包的形式 Push到手機裡  在通過命令來執行 比較反人類 說真的 不推薦使用  Uiautomator2.0已經出來了  還是2.0好點

首先下載   ANT  在配置 環境變數    下載完了直接解壓就行 最好在C目錄(反正也不大)  全英文

點選我的電腦   系統屬性   高階系統設定    環境變數

 ANT_HOME 為命名   後面是ant存放的路徑 

ANT_HOME: C:\ant\apache-ant-1.9.2                          

CLASSPATH: %ANT_HOME%\lib

PATH: %ANT_HOME%\bin

這樣我們環境變數就配置好了 可以進行下一步了

我是用的eclipse IDE看個人意願 (其實我最喜歡AS了)

新建專案 不用我說 隨便建個class寫就行  注意minSdkVersion不要低於16  16才有的自動化測試

測試程式碼  注意編碼 要UTF-8 不要用GBK 會報錯  對中文支援不是很好


    public  void testDemo() throws Exception{
        //進入操作前,先用Home鍵進入待機介面  
         getUiDevice().pressHome();  
        
        UiObject object = new UiObject(new UiSelector().text("設定"));
        object.click();
       

    }

接著就開始複雜的命令了   之前配置的ant 也可以用上了

1 找到自己的IDE 所在的目錄  一直進到 tools裡  複製全路徑  在到CMD 進入到目錄下 輸入android list進行查詢android 版本對應的id 值 

我的android 當前的ID值 為10  記錄下來 下一步會用到

2 接著下一步的操作還在tools檔案下 進行操作  CMD 接著輸入命令android create uitest-project -n <name> -t <android-sdk-ID> -p <project_path>

比如:
    android create uitest-project -n Checker

-t 10 -p G:\Ui\src\com\example\ui\Demo

name  就是要生成最後Jar包的名字   android sdk id  顧名思義 就是剛才我們查詢到的 id值  最後project_path 就是測試類所在的全路徑  此命令成功後會在 專案的根目錄下生成 build.xml檔案   如果沒有成功查詢之前的操作 路徑 以及id值是否正確


3 最後一步 CDM 進入到 測試工程目錄  在CMD 輸入 ant build  成功後會在 工程的bin 目錄下 出現jar包


bin 目錄下的jar 包就是我們寫好的指令碼了   你可以直接push到手機裡 也可以通過QQ的手機助手進行傳送

將jar包push到手機data/local/tmp目錄下,對應的命令是:

adb push <jar檔案路徑> data/local/tmp

必須要push到data/local/tmp   QQ傳送的朋友 可以下載個RE檔案管理  進行剪下  或者用手機自帶的

最後執行 jar包  adb shell uiautomator runtest <jar檔名> -c <工程中的類名(包含包名)>

例:

adb shell uiautomator runtest Checker.jar -c com.example.ui.Demo


顯示OK 就是成功了 就會神奇的看到設定被點開了 之後你想怎麼寫都行了 可以查詢相關API  其實Uiautomator本質就是 給開發人員用的測試  不論1.0 還是 2.0  如果你要寫指令碼可以用觸動精靈 挺好用的 兩天就能寫個功能完善的指令碼


相關推薦

Uiautomator-1.0入門

關於 自動化測試   其實並不是很難   主要環境配置起來 很麻煩   網上有不少部落格 但有些細節沒有說到 反倒API說了一大推  環境搭建起來了 其他就很簡單了 我們會用到 ANT  可以把 寫

ExtJs-5.1.0入門學習

早就聽說ext,只是簡單的認為是和Jquery類似的js框架,並沒有實際應用或者深入學習過,因工作需要進行深入學習。 從ExtJs發展到現在已經發布到5.1.0了,最新的入門資料ExtJs的版本比較老,下載的原始碼包目錄也不一樣,學習時真是費了不少功夫。 入門就感覺拿過原始

子雨大資料之Spark入門教程---Spark2.1.0入門:第一個Spark應用程式:WordCount 2.2

前面已經學習了Spark安裝,完成了實驗環境的搭建,並且學習了Spark執行架構和RDD設計原理,同時,我們還學習了Scala程式設計的基本語法,有了這些基礎知識作為鋪墊,現在我們可以沒有障礙地開始編寫一個簡單的Spark應用程式了——詞頻統計。 任務要求 任務:

SpringBoot 2.0入門1

1.在eclipse中建立一個Maven工程 建立名為”helloworld” 型別為Jar工程專案。 2.pom檔案引入依賴 在pom中加入如下程式碼: <parent> <groupId>org.springframework.boo

小象學院 零基礎Python入門 案例二 分形樹繪製1.0

import turtle def main(): count = 1 while count<=5: turtle.forward(200) turtle.right(144) count = count + 1 turtle.exitonclick() i

java實現計算器(最低版1.0,只能實現從左到右依次計算)——初學者入門

軟體:eclipse 才開始用java設計東西,我覺得這個程式適用於初步想設計計算器的同學用,雖然很簡單,但我會慢慢更新自己所寫計算器,實現更強的邏輯。 例如:61-7*4=216(從左至右的簡單邏輯,還不完善) 程式碼:(有詳細註釋) //大佬不適合看! package l

Apollo 1.0快速入門指南

關於本指南 在阿波羅1.0快速入門指南提供了所有的基本指令瞭解,安裝和建設阿波羅。 檔案約定 下表列出了本文件中使用的約定: 圖示 描述 膽大 重點 Mono-space font 程式碼,鍵入的資料 斜體 檔案,部分和標題的標

AOSP6.0.1 launcher3入門篇—hotseat相關實現

在安卓桌面程式的主介面我們可以看到是由QsbSearchBar(上方搜尋框)、Workspace(頁檢視空間)、pageIndicator(頁指示器)、hotseat(底部檢視空間)四個部分組成,它們是

由淺入深--探究Tomcat9.0---入門1

好幾個月沒寫部落格了,一是在籌備轉型事宜,二是一直在研究tomcat,現在總算有一些眉目了。現在將自己這幾個月的研究成果給各位看官奉上,希望大家喜歡。 本次原始碼分析預計分為五大專題 第一部分是Tomcat入門篇(元件介紹,啟動流程分析) 第二部分是手寫tomcat實現

演算法的樂趣c/c++ —— 1.2.0入門習題

宣告:摘選自“  演算法競賽入門經典(第2版)”作者:   劉汝佳   /   陳鋒    ISBN:9787302291077 子序列 輸入

從零開始學習ASP.NET MVC 1.0 (一) 開天闢地入門

《從零開始學習ASP.NET MVC 1.0》 文章導航 一.摘要 隨著ASP.NET MVC 1.0版本的正式釋出, 我將本系列文章也更新到了1.0, 對於已經發表的文章我都會根據1.0版本重新編輯. 希望本系列文章能打給大家幫助. 二.前言 ASP.NET MVC是微軟官方提供的開源M

kafka2.1.0核心概念及入門教程

kafka kafka 核心概念 什麼是kafka Kafka是由Apache軟體基金會開發的一個開源流處理平臺,由Scala和Java編寫。該專案的目標是為處理實時資料提供一個統一、高吞吐、低延遲的平臺。其持久化層本質上是一個“按照分散式事務日誌架構的大規模釋出/訂閱訊息佇

【爬蟲入門】【非同步】爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 # 多執行緒/多程序:提高程式碼的執行效率,放在爬蟲中就是提高爬取效率。因為可以使用多個程序同時對多個頁面發起請求。 # 之前的糗事百科/51job同步執行:按照先後順序一個一個執行。 from urllib.request import urlopen from ur

【爬蟲入門】【同步】爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 from urllib.request import urlopen from urllib.error import HTTPError import re, sqlite3 class RRCSpider(object): """ 人人車爬蟲類

【爬蟲入門】【正則表示式】【非同步】爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 # 多執行緒/多程序:提高程式碼的執行效率,放在爬蟲中就是提高爬取效率。因為可以使用多個程序同時對多個頁面發起請求。 # 之前的糗事百科/51job同步執行:按照先後順序一個一個執行。 from urllib.request import urlopen from ur

【爬蟲入門】【正則表示式】【同步】爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 from urllib.request import urlopen from urllib.error import HTTPError import re, sqlite3 class RRCSpider(object): """ 人人車爬蟲類

【爬蟲入門】抓取糗事百科的段子1.0

爬取糗事百科資訊 注意:爬取任何一個網站,首先要確定的就是這個網站是靜態網站還是動態網站。其次看看這個GET請求是否攜帶了特殊的引數。最後需要留意請求頭中的Cookie資訊。 class QSBKSpider(object): """ 爬蟲類 """

【爬蟲入門】抓取白敬亭貼吧某個帖子下的圖片1.0

import urllib.request import re import os import urllib # 根據給定的網址來獲取網頁詳細資訊,得到的html就是網頁的原始碼 def getHtml(url): page = urllib.request.urlopen(ur

AOSP6.0.1 launcher3入門篇-解析DeviceProject.java及相關檔案

上一篇文章(AOSP6.0.1 launcher3入門篇—解析launcher.java檔案)描述了launcher3的載入過程,本篇文章記錄hotseat停靠方向和位置、隱藏頁指示器、Folder大小等。 首先介紹建構函式: 找到public DevicePr

Android Studio中ArcGIS Runtime Android SDK 100.1.0(100.2.0,100.3.0)開發原生地圖應用(入門環境配置)

前言     最近因為工作關係,需要使用ArcGIS Runtime SDK for Android搭建一個簡單的入門Demo,也就是傳說中的Hello GISer。翻了一遍官方文件,ArcGIS Runtime SDK for Android的安裝推薦使用Gradle,而