『與善仁』Appium基礎 — 30、操作微信小程式

繁華似錦Fighting發表於2021-12-27

微信小程式和微信公眾號的測試方式基本上是一樣的。

微信的小程式越來越多了,隨之帶來的問題是:小程式如何做自動化測試?

我們就以微信小程式來進行講解,介紹如何測試微信小程式。

1、測試微信小程式前提

  1. 獲取真機裝置標識。
    也就是裝置和電腦進行連線。
    換句話說,
    輸入adb connect 127.0.0.1:21503 連結逍遙模擬器
    輸入adb devices 能夠獲取裝置名稱。
    就是了。
  2. 真機安裝微信程式。
  3. 獲取當前小程式的程式。
  4. 獲取微信頁面元素進入小程式。

2、獲取微信小程式的程式

微信有很多的程式,每一個小程式都執行在不同的程式中。

先開啟微信小程式(例如:小黃車),檢視當前執行在哪個程式中。

(1)先開啟微信,進入小黃車小程式。

進入小黃車小程式首頁,就在這放著就行。

image

(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("http://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,之後點選開啟。

image

或者,通過微信掃一掃,掃描下面的二維碼,進入X5除錯頁面。

image

(2)資訊頁中,勾選“開啟TBS核心Inspector除錯功能”

image

這樣就可以了。

相關文章