首頁 > 軟體

python+appium自動化測試之如何控制App的啟動和退出

2022-02-15 10:01:55

由於本人使用的是Android裝置做自動化測試,所以以下內容均基於Android系統做出的整理

一、啟動app

啟動app需要設定Capability引數,而Capability引數放在Desired Capalibity中,Desired Capalibity告訴Appium想要的自動化平臺和應用程式,這是一組鍵值對,主要是用於通知Appium伺服器建立需要的session

設定Capability的公共部分

platformName     自動化測試手機的作業系統(Android/iOS)
platformVersion  手機對應的版本(Android 10)
deviceName       連線的裝置名(模擬器或真機)

設定Capability 的Android部分

appActivity 通過APK包獲取,獲取方式在下方有說明

appPackage 通過APK包獲取包名,獲取方式在下方有說明

Android完整案例:

def start(self):
        caps = {"platformName": "Android",
                "deviceName": "U4AIUKFAL7W4MJLR",
                "platforVersion": "9",
                "appPackage": "com.sina.weibo",
                "appActivity": "com.sina.weibo.SplashActivity",
                "autoGrantPermissions": "true",
                "automationName": "UiAutomator2"
                }

        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

1.plateforName的作用?

作業系統,例如:Android、iOS、FirefoxOS

2.deviceName的作用是什麼?(獲取裝置名的方式在下面內容)

裝置名,連線的裝置名(真機或模擬器)

3.platforVersion的作用是什麼?

作業系統版本,對應連線的模擬器或手機的系統版本

4.appActivity和appPackage的作用是什麼?(獲取的方式在下面內容)

使Appium確切知道應為您的應用程式啟動哪個程式包和活動。否則,Appium會嘗試從您的應用清單中自動確定這些內容。

5.autoGrantPermissions的作用是什麼?

讓appium自動授權app許可權,如果noReset為True,則該條不生效(該引數為Android獨有),對應的值為True或False

6.automationName的作用是什麼?

使用引擎,預設為Appium,其中Appium、UiAutomator2、Selendroid、Espresso用於Android,XCUITest用於iOS

7.webdriver.Remote("http://localhost:4723/wd/hub", caps)的作用是什麼?

webdriver.Remote實際上就是原生webdriver的子類,另外Remote()建構函式的第一個引數中需要顯示指定appium server監聽的埠

二、退出App

def teardown(self):
		driver.quit()

三、appium實現原理

使用者端(即PC端)通過4723埠,向伺服器端(server)傳送程式碼請求,伺服器端與行動端(裝置:手機或模擬器)通過4724埠進行通訊,當伺服器端接收到請求後,行動端的Bootstrap.jar包,將命令傳送給Uiautomator執行點選、滑動的操作。

Bootstrap的作用:啟動socket通訊,監聽4724埠

如下圖所示:

appium只是一個框架,呼叫的自動化框架是Android或iOS本身的框架,預設埠號是4723,原生的IP地址是:http://127.0.0.1,或http://locahost

四、如何獲取deviceName?

行動端在“手機->設定->開發者選項”中開啟USB偵錯,PC端按下【Windows+R】,輸入cmd,執行cmd,輸入adb devices,如下圖所示:

圖中的device前面的引數即表示裝置名:U4AIUKFAL7W4MJR

五、如何獲取apk的appActivity和appPackage?

1、在Android SDK的資料夾下找到aapt.exe應用程式,在"D:AndroidSDKbuild-tools30.0.1"路徑下,如下圖所示:

2、按下【Windows+R】,輸入cmd,執行cmd ,進入該盤,再進入appt.exe所在的資料夾,輸入的內容為:“cd D:AndroidSDKbuild-tools30.0.1”,則可以進入該資料夾,進入資料夾後輸入“aapt dump badging apk所在的路徑+apk名字”,如下圖所示即為成功,下圖所示為獲取到的app的appPackage

下圖所示為獲取到的app的appActivity

 到此這篇關於python+appium自動化測試之如何控制App的啟動和退出的文章就介紹到這了,更多相關python appium App的啟動和退出內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com