搭建appium+python自動化測試環境

weixin_34249678發表於2018-08-09

一.appium簡介

工作原理:


5977329-c355a1dbba0a1637.png

a.執行指令碼時,client-java將指令碼翻譯為webdriver協議,與appium server通過json進行互動

b.appium server通過webdriver協議將翻譯指令碼翻譯為UI Automator命令,通過bootstrap執行

c.bootstra把執行結果轉發回appium server

二.搭建appium+python自動化環境

以下安裝可以參考這個網址:Appium移動自動化測試

1).安裝java環境(記得把jdk和jer路徑放到環境變數中),安裝教程地址:java環境配置,可在cmd下輸入java檢視是否配置完成

2).安裝android adt或者sdk

3).安裝sdk manager

4)安裝sdk platform-tools

5)安裝android模擬器(如果是真機測試,這邊可以忽略)

6)安裝adb環境,下載連結:adbdriver.zip,配置教程:adb配置教程,可在cmd下輸入adb檢視是否配置完成

7)下載appium—desktop並安裝。下載地址https://github.com/appium/appium-desktop/releases/,下載最新版

5977329-2f4c48a970cf98dd.png

三.獲取檔案的app的package、activity方式

1)在cmd環境下,cd到sdk\builds-tools\ 目錄下

2)在剛剛的目錄下執行aapt dump badging E:\apk\es3.apk(包在電腦上的路徑),就可以檢視到app的package和activity


5977329-3ee60dd1d6e92fde.png

四.獲取頁面的元素

1)把手機連線電腦(cmd命令列裡輸入:adb  devices,可以看到當前連線的手機)

2)開啟android sdk裡面的uiautomator,點選頁面上方的手機螢幕的按鈕,uitomator上出現的手機上此時的頁面

3)可以在automator頁面的右邊,檢視到需要定位頁面的元素

五.用python程式碼編寫執行

1)find_element_by_id("XXX")

2)find_element_by_class_name("XXXX")

3)find_element_by_accessibility_id("XXX")   查詢介面元素的content-desc屬性  在當期那頁面唯一

4)find_element_by_xpath("XXXX")(xpath的原理:就是先找到一個唯一的id,再在此元素下面查詢其他的元素)

xpath=“//*[@resource-id='  ']//”

5)還有一種是通過autma投入 api,來控制裝置

#1 使用resourceld方式

driver.find_element_by_android_uiautomator('new UiSelector().resoureId(“%s”)')

#2 使用text方式

driver.find_element_by_android_uitomator('new UiSelector().text("%s")')

# 3使用description方式

driver.find_element_by_android_uitomator('new UiSeletor().description("%s")')

# 4使用class方式

driver.find_element_by_android_uitomator('new UiSelector().className("%s")')

#5.使用index方式

driver.find_element_by_android_uitomator('new UiSelector().index("%s")')

六.操作手勢

1)常用的方式

click()  點選

send_keys()  輸入資料

swipe(self, start_x, start_y, end_x, end_y, duration=None)  滑動

2)TouchAction庫(單觸點操作)

(定義了短按press、釋放release、移動到moveTo、點選tap、等待wait、長按longpress、執行perform)

使用方式

from appium.webdriver.common.touch_action import TouchAction

driver.perfrom(TouchAction().tap(el))

或者TouchAction().tap(el).perfrom

3)MultiAction庫(多觸點操作)

from appium.webdriver.common.multi_action import MultiAction

action0=TouchAction().tap(el1)

action1=TouchAction().tap(el2)

MultiTouch().add(action0).add(action1).perform

七.python的安裝

1)win下載地址:https://www.python.org/downloads/windows/(一般下載3.6版本的)

2)安裝好了,記得配置環境(如果是3.5以上的版本這邊勾選就就會自動新增到環境變數中)

3)判斷python是否已安裝

在cmd環境中輸入python:出現如下情況證明已安裝成功

八.pycharm的使用

1)下載:下載社群版的即可(下載地址:https://www.jetbrains.com/pycharm/download/#section=windows

2)安裝:可參考https://blog.csdn.net/ziyouhahaze/article/details/78230811

3)使用

a.新建一個工程

選擇file——new project,填寫儲存路徑,並命名

b.建立一個專案

c.建立一個檔案

左側導航欄選擇 Pure Python ,右側的 Location 選擇專案的路徑, Interpreter 通過下拉欄選擇 Python版本 ,這裡直接使用 Python 的安裝路徑即可。

選擇完成之後,點選 Create 按鈕,進入介面。這時就可以建立檔案了,步驟如下圖所示: 

d.建立一個檔案

Crossin-practices → New → Python File 

九.appium—desktop的使用

下載後直接開啟,出現下面頁面


5977329-81b4c8298bba0cf9.png

這邊appium和UItomator的使用上有衝突(1.6.2之後的版本這個問題已修復),在使用apium—desktop時就無法正常使用automator,直接點選start server的按鈕,即開啟appium

十.自動化指令碼的基本知識講解

1)基本配置


5977329-cff225961ea0a0e1.png
基本配置

其中:platforName:裝置的名稱

           platforVersion:手機的版本

           devicesName:手機的裝置號(cmd中adb devices獲取)

           appPackage:包名

            appActivity:安卓應用的操作介面

             unicodeKeyboard:安裝一箇中文的輸入法

2)獲取頁面元素並操作


5977329-c1e8869d708adacc.png

十一.學習的參考資料

Appium移動自動化測試教程

相關文章