Appium的介紹和使用(超詳細版,持續更新中)

前言:目前很多公司都在做APP,對於APP測試來說,我個人認爲痛點在於版本迭代快,機型多,迴歸測試需要耗費大量的人力、時間成本,那我們該怎麼做呢?這時候就要引入APP自動化了,它可以幫助我們有效的進行迴歸測試!
一、Appium環境安裝和架構介紹
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
二、appium用例錄製
官方文檔
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在電腦上通過 adb 和 IP 地址連接 Android 設備
adb connect 127.0.0.1:7555
在這裏插入圖片描述
adb logcat |grep -i displayed 獲取當前的操作日誌
在這裏插入圖片描述

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time

desire_cap = {
    "platformName": "android",
    "deviceName": "127.0.0.1:7555",
    "appPackage": "com.xueqiu.android",
    "appActivity": ".view.WelcomeActivityAlias",
    "noReset": True,  # 跳過彈窗,手動關閉彈窗後後續操作將自動跳過
    "dontStopAppOnReset": True  # 設置爲不停止APP
}

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_cap)

driver.implicitly_wait(10)
element1 = driver.find_element_by_id("com.xueqiu.android:id/tv_search").click()
element2 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("Alibaba")
time.sleep(5)
windows_rect = driver.get_window_rect()
width = windows_rect["width"]
height = windows_rect["height"]
print(width, height)
TouchAction(driver).tap(x=175, y=220).perform()
time.sleep(5)
TouchAction(driver).tap(x=270, y=692).perform()
time.sleep(5)
driver.back()
time.sleep(5)
TouchAction(driver).tap(x=325, y=1223).perform()
time.sleep(5)
driver.back()
time.sleep(5)
TouchAction(driver).tap(x=206, y=197).perform()
time.sleep(5)
TouchAction(driver).tap(x=247, y=1243).perform()
time.sleep(5)
element3 = driver.find_element_by_id("com.xueqiu.android:id/tv_login_by_phone_or_others")
element3.is_enabled()
print(element3.text)
print(element3.size)

每一個操作步驟添加等待時間是爲了讓大家看的更加清楚操作步驟哈

三、元素定位方法與隱式等待
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
driver.implicitly_wait(10) 隱式等待,作用於全局
在這裏插入圖片描述
在這裏插入圖片描述
四、App控件定位
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
控件基礎知識
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
五、APP控件交互
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
六、觸屏操作自動化
在這裏插入圖片描述
在這裏插入圖片描述
七、高級定位技巧
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
八、顯式等待機制
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

locator = (MobileBy.ID, "com.xueqiu.android:id/tv_login_by_phone_or_others")
WebDriverWait(driver, 10).until(expected_conditions.element_to_be_clickable(locator))   #顯式等待判斷
element = WebDriverWait(driver, 10).until(lambda x: x.find_element(*locator))   #顯示等待用lambda表達式判斷

九、特殊控件Toast識別
在這裏插入圖片描述
在這裏插入圖片描述
十、屬性獲取與斷言
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
pip install pyhamcrest pip安裝
十一、appium參數化用例
直接用pytest.mark.parmetrize裝飾器或者yaml文件讀取
在這裏插入圖片描述
十二、數據驅動
利用外部數據
在這裏插入圖片描述
使用yaml
在這裏插入圖片描述
十三、Android Webview測試
在這裏插入圖片描述
在這裏插入圖片描述
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md
https://npm.taobao.org/mirrors/chromedriver/
adb shell pm list package 查看手機上所有的包名
adb shell pm list package|grep browser 查看瀏覽器的包名
adb shell pm dump com.android.browser|grep version 查看瀏覽器版本
chrome://inspect/#devices 調試H5工具,需要翻牆才能訪問
點擊inspect
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
driver.switch_to.context(driver.switch_to.context[-1])
driver.switch_to.window(driver.window_handles[-1])
對於混合APP來說,有一個上下文概念,從原生進入WEB需要切換上下文,就像pc切換句柄一樣,這是一個簡單的切換,詳細情況可以百度
在這裏插入圖片描述
十四、微信小程序測試
待更新
十五、實戰演練
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

Android 開發環境與SDK
Appium Server 包括兩種形態:

Appium Desktop :包括Appium Server ,Appium Inspector
Appium Server :直接就是一個server ,命令行啓動 直接輸入appium 回車
測試iOS 系統:必須的環境
PC: MacOS,Xcode ,libimobiledevice ,ideviceinstaller,
手機安裝:WDA facebook (webdriver agent)

測試設備
真機
模擬器
mumu 6.0 (推薦)
Genimotion
- 可以模擬不同手機尺寸,不同版本的手機設備
emulator
- android sdk自帶的emulator ,使用Android Studio 創建
- emulator 啓動方法:
emulator  -list-avds   列出有哪些模擬器
emulator @Pixel_3a_XL_API_23_x86-6-0   啓動模擬器
測試設備需要設置:
真機或者模擬器都需要打開的:
打開開發者選項, 連點版本號七下,返回 設置頁
開發者選項 - USB調試模式

模擬器連接:
adb connect

真機 需要安裝驅動:
windows系統: 安裝驅動 ,豌豆夾或者手機助手。
Mac Linux 不需要安裝

App 文件
下載安裝
三種方式:

去應用商店或者app store下載安裝
去網上下載(比如應用寶等平臺),然後拖拽到手機上
將下載下來的應用,使用命令安裝:
adb install **.apk
卸載
卸載方式:

直接在模擬器上卸載,長按應用,拖拽刪除
使用命令卸載:
adb uninstall  apk的包名
例如企業微信:
adb uninstall com.tencent.wework
Appium Desktop
點擊 Start Server 啓動服務
配置DesireCapability

{
  "platformName": "android",
  "deviceName": "emulator-5554",
  "appPackage": "com.tencent.wework",
  "appActivity": ".launch.LaunchSplashActivity",
  "autoGrantPermissions": "true",  #這個參數爲true的時候 noReset參數不生效
  "noReset": "true"  #noReset 防止清除app的數據
}
adb 常用命令
adb devices
adb logcat | grep -i Displayed
adb shell am start -n 啓動 activity
com.tencent.wework/.launch.LaunchSplashActivity
com.tencent.wework/.launch.WwMainActivity
注意:啓動頁與直接啓動主頁是不同的。 理論上任何一個頁面都可以直接進去,但開發做了限制,不允許這麼操作。只能從啓動頁開始,模擬真實用戶使用場景。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
待更新…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章