微信小程式和微信公眾號的測試方式基本上是一樣的。
微信的小程式越來越多了,隨之帶來的問題是:小程式如何做自動化測試?
我們就以微信小程式來進行講解,介紹如何測試微信小程式。
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("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
,之後點選開啟。
或者,通過微信掃一掃,掃描下面的二維碼,進入X5
除錯頁面。
(2)資訊頁中,勾選“開啟TBS核心Inspector除錯功能”。
這樣就可以了。