appium

Old_Arthurㄟ發表於2024-11-08

appUI自動化

1、appium介紹
	appium是一個自動化app的工具,繼承了selenium
	http://appium.io
	appium概念
2、 appium自動化環境搭建
	1、java環境,JDK,設定java環境變數
		檢視當前java版本 java -version
		檢視當前Java安裝路徑:where java
		java-1.8的版本,java根目錄設定系統環境變數,JAVA_HOME,
		要在系統彈窗內能查到:set JAVA_HOME
	2、安裝Android SDK
		D:\fengkunlei\Android SDK Windows
		https://www.androiddevtools.cn/#
		下載解壓後根目錄下,開啟SDK Manager.exe檔案勾選配置 install
		設定環境變數,將解壓後的檔案路徑,以下面的形式放置到系統環境變數的path裡
		配置完成後,要在系統彈窗命令列內能查到版本:adb version
			%ANDROID_HOME%\tools
			%ANDROID_HOME%\platform-tools
			%ANDROID_HOME%\build-tools\21.0.2
	3、安裝模擬器,或者真機
		安裝完成後,連線模擬器:命令列執行:adb devices
			List of devices attached
			123456789ABCDEF device
		輸出上面內容,表示連線成功
	4、adb常用命令
		1.列印當前連線的所有模擬器或者裝置
			adb devices
		2.連線裝置
			adb connect <host>[:<port>]
		3.終止adb服務程序
			adb ki11-server
		4.開啟adb服務程序
			adb start-server
		5.安裝app	xxx.apk:包名
			adb insta1l xxx.apk
		6.刪除app		xxx.apk:包名
			adb uninsta1l xxx.apk
		7.列印裝置上安裝的app包名
			列印報名
			adb she1l pm list packages
			列印安裝路徑+包名
			adb shell pm list packages -f
		8.檢視當前正在執行的包名
			adb shell dumpsys window | findstr 關鍵字
		9.進入裝置控制檯
			進入:adb she11
			退出:exit
		10.查詢當前頁面 activity位置  可以獲取appActivity,查詢app的初始化頁面,也就是第一個頁面   
			adb shell dumpsys activity activities
		11.查詢入口activity還可以使用aapt 命令,命令語法如下:
			aapt dump badging app包檔案(apk檔案)
		
	5、Appium 伺服器
		Appium 是用 Node.js 寫的伺服器。它可以從原始碼構建安裝或者從 NPM 直接安裝:
			$ npm instal1 -g appium
			$ appium
		Appium 客戶端
		有多個客戶端程式庫I(lava、Ruby、Pvthon、PHP、lavaScript和C#的)支援Appium對 WebDriver 協議的擴充套件,
		你需要用這些客戶端程式庫代替通常的WebDriver 客戶端。在這裡瀏覽所有程式庫的列表。
		AppiumDesctop
		有 Appium 伺服器的圖形介面包裝器可以下載。
		它們打包了 Appium 伺服器執行需要的所有東西,所以你不需要為 Node 而煩惱。
		它們還提供一個Inspector 使你可以檢視你應用的層級結構,這在寫測試時很方便。
		  https://github.com/appium/appium-desktop/releases
	6、appium自動化流程
		1.appium啟動一個http服務,預設監聽在4723埠用接受appium客戶端傳送的指令
		2.appium客戶端傳送請求與appium服務建立一個會話,需要攜帶必要的Desired Capabilities 引數
		3.appium 檢查啟動引數
		4. 	 	啟動adb服務程序,預設埠5037
		5.檢查連線裝置和平臺版本
		6.安裝appum.setti
		7.ngs並啟動
		8.埠轉發建立UiAutomator2 Server的socket連線,adb所在平臺8200埠(可以透過引數systemPort設定),裝置平臺6790
		9.安裝檢查 io,appium,uiautomator2.server和io,appium.uiautomator2.server.test和appiumuiautomator2-server-debug-androidTest
		10.Starting UlAutomator2 server,等待3秒
		11.向8200埠傳送get請求,獲取UlAutomator2 server的狀態
		12.如果UlAutomator2 server線上,向8200埠傳送post請求傳遞建立會話引數
	

desired capabilities
上面appium的介紹中,我們瞭解到,desired capabilities是一些傳送給appium伺服器的鍵值對集合,告訴伺服器我們想要啟動什麼型別的會話。這裡我們主要用到如下鍵值對
鍵值 描述
platformName 使用的手機作業系統 ios,Android,或者使用的手機作業系統
platformVersion 手機作業系統的版本 例如:5.1.1
deviceName 使用的手機或模擬器型別 使用 adb devices 命令可以返回一個有效的裝置列表
appPackage 執行的 Android 應用的包名 例如:com.tencent.mm
appActivity Activity 的名字是指從你的包中所要啟動的androidacticity。 他通常需要再前面新增 例如.ui.LauncheruI
noReset 重置app裡的資料 預設為false

重置策略

自動化平臺 預設 fullReset noReset
ios (包括xCuITest) 測試完成後關閉模擬器。不銷燬模擬器。不從真機上解除安裝應用。 測試完成後解除安裝應用,模擬器測試結束後銷燬模擬酯。 測試結束後不銷燬或者關閉模擬器。啟動測試執行在任意正在執行的模擬器或者插入的真機。
Android 測試結束後停止應用,清理應用資料,不解除安裝應用包。 測試結束後停止應用,清理應用資料,解除安裝應用包。 不停止應用,不清理應用資料,不解除安裝應用包。

相關文章