Python+Appium實現APP自動化測試
一、環境準備
1.指令碼語言:Python3.x IDE:安裝Pycharm
2.安裝Java JDK 、Android SDK
3.adb環境,path新增E:\Software\Android_SDK\platform-tools
4.安裝Appium for windows
點選下載按鈕會到GitHub的下載頁面,選擇對應平臺下載
安裝完成後,啟動Appium,host和port預設的即可,然後設定Android SDk和Java JDK
然後點下邊那個儲存並重啟的按鈕,然後點第一個Start Server按鈕,將會看到
二、真機測試
1.連線手機
開啟開發者模式,USB線連線手機和電腦,並且在開發者選項當中,開啟USB除錯
測試是否連線成功,可執行命令adb devices
出現上圖就證明手機和電腦連線成功。。。
2.點選Start Inspector Session,
按如下配置Desired Capabilities
platformName :宣告是ios還是Android系統
platformVersion : Android核心版本號,可通過命令adb shell getprop ro.build.version.release檢視
deviceName :連線的裝置名稱,通過命令adb devices -l中model檢視
appPackage :apk的包名
appActivity:apk的launcherActivity,通過命令adb shell dumpsys activity | findstr “mResume”檢視(需先開啟手機應用)
注意:Android 8.1之前應使用adb shell dumpsys activity | findstr “mFocus”
3.執行Start Session,選擇元素
右側 Selected Element 區域有三個按鈕
- Tap:執行選中元素的點選事件
- Send Keys:為文字框等物件傳值
- 如果是文字輸入元素,就清除文字
4.錄製指令碼
錄製生成的python程式碼如下:
# This sample code uses the Appium python client # pip install Appium-Python-Client # Then you can paste this into a file and simply run with Python from appium import webdriver caps = {} caps["platformName"] = "Android" caps["platformVersion"] = "9.0.0" caps["deviceName"] = "Mi_Note_3" caps["appPackage"] = "com.antfortune.wealth" caps["appActivity"] = "com.alipay.mobile.quinox.LauncherActivity" caps["resetKeyboard"] = True caps["unicodeKeyboard"] = True driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) el1 = driver.find_element_by_id("com.antfortune.wealth.login:id/login_main_button") el1.click() el2 = driver.find_element_by_id("com.alipay.mobile.accountauthbiz:id/auth_login_btn") el2.click() driver.quit()
5.在pycharm中建立專案將程式碼粘入,在執行之前,還需通過pip命令安裝pip install Appium-Python-Client依賴包
最後,記一個我在這些過程中遇到的問題(現已解決)
在Appium-desktop中執行Start Session時,出現
解決方法:在開發者模式下,開啟usb除錯功能和use模擬點選,兩個都要開啟,此時再重新執行,即可解決
如果你
①從事功能測試,想進階自動化測試
②在測試界混了1、2年,依然不會敲程式碼
③面試大廠卻屢屢碰壁
我邀你進群吧!來吧~~測試員,313782132(Q群裡有技術大牛一起交流分享,學習資源的價值取決於你的行動,莫做“收藏家”)獲取更多大廠技術、面試資料
最後:
凡事要趁早,特別是技術行業,一定要提升技術功底,豐富自動化專案實戰經驗,這對於你未來幾年職業規劃,以及測試技術掌握的深度非常有幫助。