大家都知道,要測試模擬用戶在手機端安裝一個APP, 首先會考慮到,在什么設備下安裝,設備版本是啥,設備名稱是啥,我要安裝啥APP。安裝完畢以后我要啟動和登錄APP。
那如何利用python + appium模塊如何實現這波操作呢???
思路:
(1)測試環境是什么???是Android?還是iOS???此處以Android為例進行分析:
設備:Android
版本:4.4.2 (Android對應的版本)
設備名稱:127.0.0.1:62001 (注意,此處是我的模擬器,如果是真機,可以在【設置】-【關於手機】-【型號】來看)
待安裝的APP:手機端QQ
Appium中想要通過自編寫的測試腳本來實現對模擬器/真機上的各類操作,需要appium-server來支撐它,因為appium-server可以專門實現與Android的通信,搭建一個通信橋梁。只有開啟了appium-sever服務器,並且成功連接設備才能真正實現數據交互,實現通信。
前置准備:
(1)連接Android設備
(2)開啟appium-server服務
啟動【appium-desktop】-【start sever】即可。
如何在appium-desktop上進行APP的Capbility配置???
配置解釋:
(1)platformName:設備名稱
(2)platformVersion:版本
(3)deviceName:設備名稱。如果是真機,則就是你的手機型號;如果是模擬器,你可以用:adb devices來獲取你的設備名稱(注意,前提是該設備已經連接了)。
(4)appPackage:包名。可以通過cmd命令行:appt dump badging 待安裝的.apk路徑。如:appt dump badging E:\\XXX.apk
(5)appActivity:啟動launch-Activity。可以通過命令行:appt dump badging E:\\XXX.apk |findstr-launchable-activity
(6)noReset:不重置。Ture:不重置,也就是當你啟動過這個APP后,如果不重置,那么他會記錄一些已經做過了的一些操作。假如一個APP,你安裝好了之后,首次啟動它,也許它會彈出一些比如升級、或者跳過某些廣告的操作。如果你的noReset=true,則下次你再次啟動時,就不會再彈出這些彈窗。如果你的noRest=false,這下次啟動時,仍會彈出這些彈框,就類似於手機的一個出廠設置狀態一樣。
在appium-desktop中可以進行Capbility進行設置,同時,你也可以自己通過腳本來進行配置。
注意:當需要在某些APP應用中的輸入框中輸入中文時,需要在Capbility中配置:
這樣設置之后,會有Appium的輸入法守護來執行輸入操作。從而防止亂碼的發生。
當運行這個腳本后,可以在你的模擬器或者真機上觀察到QQ的安裝和啟動。