程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python自動化測試33】Appium的啟動步驟、初始化操作及Appium原理

編輯:Python

文章目錄

  • 一、前言
  • 二、Appium啟動步驟
  • 三、Appium初始化操作
  • 四、Python啟動App程序
  • 五、為什麼要使用Appium?
  • 六、Python啟動appium時發生了什麼?

一、前言

本文章主要講解App自動化測試的啟動步驟與初始化操作等,除此之外下方有系列文章的傳送門,還在持續更新中,感興趣的小伙伴也可以前往查看,話不多說,讓我們一起看看吧~

系列文章:
系列文章1:【Python自動化測試1】遇見Python之美
系列文章2:【Python自動化測試2】Python安裝配置及PyCharm基本使用
系列文章3:【Python自動化測試3】初識數據類型與基礎語法
系列文章4:【Python自動化測試4】字符串知識總結
系列文章5:【Python自動化測試5】列表與元組知識總結
系列文章6:【Python自動化測試6】字典與集合知識總結
系列文章7:【Python自動化測試7】數據運算符知識合集
系列文章8:【Python自動化測試8】流程控制語句講解
系列文章9:【Python自動化測試9】函數知識合集
系列文章10:【Python自動化測試10】文件基礎操作
系列文章11:【Python自動化測試11】模塊、包與路徑知識合集
系列文章12:【Python自動化測試12】異常處理機制知識合集
系列文章13:【Python自動化測試13】類、對象、屬性與方法知識合集
系列文章14:【Python自動化測試14】Python自動化測試基礎與進階練習題
系列文章15:【Python自動化測試15】unittest測試框架的核心概念與作用
系列文章16:【Python自動化測試16】測試用例數據分離
系列文章17:【Python自動化測試17】openpyxl二次封裝與數據驅動
系列文章18:【Python自動化測試18】配置文件解析與實際應用
系列文章19:【Python自動化測試19】日志系統logging講解
系列文章20:【Python自動化測試20】接口自動化測試框架模型搭建
系列文章21:【Python自動化測試21】接口自動化測試實戰一_接口概念、項目簡介及測試流程問答
系列文章22:【Python自動化測試22】接口自動化測試實戰二_接口框架修改及用例優化
系列文章23:【Python自動化測試23】接口自動化測試實戰三_動態參數化與數據偽造
系列文章24:【Python自動化測試24】接口自動化測試實戰四_Python操作數據庫
系列文章25:【Python自動化測試25】接口自動化測試實戰五_數據庫斷言、接口關聯及相關管理優化
系列文章26:【Python自動化測試26】接口自動化測試實戰六_pytest框架+allure講解
系列文章27:【Python自動化測試27】Web自動化測試理論、環境搭建及常見操作
系列文章28:【Python自動化測試28】html基礎語法
系列文章29:【Python自動化測試29】Xpath、軸運算及CSS元素定位詳解
系列文章30:【Python自動化測試30】Web自動化之三大等待與三大切換
系列文章31:【Python自動化測試31】Web自動化之鼠標鍵盤操作、select用法
系列文章32:【Python自動化測試32】App自動化環境搭建

二、Appium啟動步驟

筆者說明Appium的啟動步驟主要是想防止一些新手在使用的過程中出現錯誤,按照如下的方式進行操作,可以確保順利啟動:
(1)第一步:打開真機或模擬器,先來說真機:

真機:無論手機系統,需要打開開發者模式,安卓手機進入對應的手機信息界面多次點擊版本即可打開,部分手機會有差異,IOS手機需要申請開發者賬號後再去開啟開發者模式,具體操作可以百度查看,開啟開發者模式後需要開啟USB調試模式,手機連接電腦後,相關的權限請求,一律授權

模擬器:如果是雷電模擬器則不需要做任何操作,如果是非雷電模擬器,例如夜神、MuMu,需要做額外的配置
目標:我們需要Android自帶的adb可執行文件替換為模擬器自帶的adb可執行文件
目的:防止系統的adb環境與模擬器的adb環境不一致,導致環境出現兼容錯誤等問題
操作:
(1)找到系統的adb.exe
(2)復制一份,重命名為nox_adb.exe
(3)nox_adb.exe覆蓋模擬器bin目錄下的nox_adb.exe

模擬器在連接後不一定能夠尋找的到,我們需要通過adb命令進行連接,舉個例子:
夜神模擬器:adb connect 127.0.0.1:62001
逍遙模擬器:adb connect 127.0.0.1:21503

模擬器在連接成功後,可以進行簡單的設置,比如屏幕、usb調試模式

(2)第二步:檢測模擬器或真機是否成功連接:
我們通過adb命令進行檢測是否連接成功:adb devices

(3)第三步:確認已連接後打開Appium服務,端口號是4723 / 4444,確保服務未被控制和占用

(4)第四步:啟動一個App(被測軟件)

三、Appium初始化操作

啟動一個被測軟件前,我們需要先進行初始化操作,操作步驟如下:
(1)第一步:需要指定連接端口,4723 / 4444
指定端口的原因是因為可能默認端口被占用控制,或者啟動了多個Appium服務
(2)第二步:需要指定連接的是哪個手機設備
如果電腦上連接很多個手機,需要說明是哪一台手機,多個手機的情況下,需要指定
(3)第三步:需要指定對應的系統
連接的手機需要指定是Android系統還是IOS系統,對於服務而言,會針對不同的系統有獨特的處理方式和運作
(4)第四步:指定操作的App是哪一個
App很多,指定對應的App(被測軟件)

四、Python啟動App程序

# 導入連接的類
from appium.webdriver import Remote
def test_start_appium():
#caps 存儲需要連接的初始化信息
caps = {

# 設備名稱
"deviceName": "emulator-5554",
# 操作系統名稱
"platformName": "Android",
# 選用的App路徑,內網的情況下,指定對應Apk文件位置
"app": r"D:\data\xxx\xxx"
}
""" Python提供的端口默認是4444,如果不是4444的話需要手動指定端口,否則無法連接 如果你的服務端口為4444,那麼則可忽略command_executor的設置與填寫 """
driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=caps)

五、為什麼要使用Appium?

前面的文章筆者沒有介紹Appium的一些框架優勢等等,在此列舉下,後續整理:

(1)支持多平台:既支持安卓和IOS,還支持Windows、Mac以及Web的自動化測試,跨平台性非常強大,ios的xcuitest、Android的uiautomator2、Espresso等,在appium中都有集成
(2)原生應用和混合應用:支持安卓獨立組件開發的內容,H5等等均可
(3)支持主流編程語言:Java / Python / Js
(4)免費、開源
(5)學習資料多,除了網絡資源,還有官方的文檔且支持中文

除此之外還有一些設計哲學,這些設計哲學大家可以通過Appium的官網進行了解

六、Python啟動appium時發生了什麼?

比如版本的對比,具體如下所示:
(1)Python運行往Appium服務/session接口中發送了一個post請求,建立了一個session對象,參數就是caps指定的參數對象
(2)Appium會校驗傳輸的參數,例如版本信息,校驗通過adb指令,adb shell的方式進入系統,獲取系統相關信息,完成校驗
(3)接著會進行App的安裝檢驗,檢驗完成後,通過adb shell am start 啟動app

需要注意的是校驗的操作比較多,Appium啟動可能會比較慢


好啦~以上就是本次文章分享的全部內容啦,你學會了嗎?希望能給大家帶來幫助哦!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved