『與善仁』Appium基礎 — 30、操作微信小程式
- 2021 年 12 月 27 日
- 筆記
- 測試基礎必會技能 - Appium測試框架
微信小程式和微信公眾號的測試方式基本上是一樣的。
微信的小程式越來越多了,隨之帶來的問題是:小程式如何做自動化測試?
我們就以微信小程式來進行講解,介紹如何測試微信小程式。
1、測試微信小程式前提
- 獲取真機設備標識。
也就是設備和電腦進行連接。
換句話說,
輸入adb connect 127.0.0.1:21503
鏈接逍遙模擬器
輸入adb devices
能夠獲取設備名稱。
就是了。 - 真機安裝微信程式。
- 獲取當前小程式的進程。
- 獲取微信頁面元素進入小程式。
2、獲取微信小程式的進程
微信有很多的進程,每一個小程式都運行在不同的進程中。
先打開微信小程式(例如:小黃車),查看當前運行在哪個進程中。
(1)先打開微信,進入小黃車小程式。
進入小黃車小程式首頁,就在這放著就行。
(2)進入命令行終端執行命令。
# 連接設備
C:\Users\L>adb connect 127.0.0.1:21503
already connected to 127.0.0.1:21503
C:\Users\L>adb devices
List of devices attached
127.0.0.1:21503 device
# 1.進入adb shell
C:\Users\L>adb shell
HD1910:/ #
# 2.查詢pid
C:\Users\L>adb shell
HD1910:/ # dumpsys activity top | grep ACTIVITY
ACTIVITY com.tencent.mm/.plugin.appbrand.ui.AppBrandUI 495f0ce pid=6070
# 微信pid就是6070
# 注意:在進行微信小程式測試的時候,要把後台的其他App全部殺掉,只有微信的進程在開著,要不然執行`dumpsys activity top | grep ACTIVITY`命令的時候,會有很多的pid,到時候可能不知道用哪一個pid,不方便查看。
# 3.根據pid查詢小程式進程,使用命令:ps + pid
HD1910:/ # ps 6070
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a31 6070 113 1992212 361032 SYSC_epoll b76aaa90 S com.tencent.mm:appbrand0
HD1910:/ #
# `com.tencent.mm:appbrand0`就是我們要測試的小黃車小程式在微信里的進程。
3、程式碼示例
"""
1.學習目標
掌握appium操作微信公眾號和微信小程式的自動化測試方法
2.操作步驟
2.1 保證真機(模擬器)和電腦連接成功
輸入`adb connect 127.0.0.1:21503` 鏈接逍遙模擬器
輸入`adb devices` 能夠獲取設備名稱。
注意:當運行真機的時候,不能黑屏
2.2 打開被測的徽信小程式
獲取小程式在徽信中的進程
1.adb shell
2.dumpsys activity top | grep ACTIVITY
3.ps pid
得到微信小程式進程 : com.tencent.mm:appbrand0
2.3 在啟動參數中添加微信小程式的進程
"chromeOptions":{"androidprocess":"com.tencent.mm:appbrand0"} #
來啟動對應小程式
2.4 獲取微信APP包名和APP啟動名
命令行終端執行
adb shell dumpsys window windows | findstr mFocusedApp
獲得的包名和啟動名為:com.tencent.mm/.ui.LauncherUI
2.5 在啟動參數中添加新參數
"noReset":True # 表示不重置應用
避免測試小程式時需要重複登陸微信。
2.6 操作小程式/公眾號
其餘操作和普通APP一樣的
3.需求
"""
# 1.導入appium和TouchAction
import time
from appium import webdriver
# 2.創建Desired capabilities對象,添加啟動參數
desired_caps = {
"platformName": "Android", # 系統名稱
"platformVersion": "7.1.2", # 系統版本
"deviceName": "127.0.0.1:21503", # 設備名稱
"appPackage": "com.tencent.mm", # APP包名
"appActivity": ".ui.LauncherUI", # APP啟動名
"noReset": True, # 表示不重置應用
"chromeOptions": {"androidprocess": "com.tencent.mm:appbrand0"}
}
# 3.啟動APP
driver = webdriver.Remote("//127.0.0.1:4723/wd/hub", desired_caps)
time.sleep(5)
# 4.操作APP
# 點擊發現
driver.find_element_by_android_uiautomator('new UiSelector().text("發現")').click()
# 點擊小程式
driver.find_element_by_android_uiautomator('new UiSelector().text("小程式")').click()
# 點擊ofo小黃車官方版,進入小程式
driver.wait_activity("/.plugin.appbrand.ui.AppBrandLauncherUI", 10)
# time.sleep(3)
driver.find_element_by_android_uiautomator('new UiSelector().text("ofo小黃車官方版")').click()
# driver.find_element_by_xpath("//*[@text='ofo小黃車官方版']").click()
# 接下來就是操作微信小程式,和以前的操作一樣。
# 都是一步一步定位,一步一步操作。
# 5.關閉APP
time.sleep(3)
driver.quit()
4、補充:(了解)
如果有些微信公共號的頁面是Webview
的時候,需要打開X5
調試頁面。
(現在基本上很少了)
(1)打開微信,在任何聊天窗口內輸入debugx5.qq.com
,之後點擊打開。
或者,通過微信掃一掃,掃描下面的二維碼,進入X5
調試頁面。
(2)資訊頁中,勾選「打開TBS內核Inspector調試功能」。
這樣就可以了。