问答 在使用微信小程序自动化测试 pytest 插件/工具 pytest-mini 时,启动 allure_debug.py 文件时,总是遇到启动微信开发工具失败、启动微信开发工具超时

小绵羊 · May 08, 2025 · Last by 测试游记 replied at May 08, 2025 · 752 hits

项目结构

代码构成

conftest.py
import pytest

from pytest_mini import plugins
from pages.ComponentsPage import ComponentsPage

pytest_plugins = plugins(
    "",  # 待测试的小程序项目路径
    ""  # 微信开发者工具路径
)


@pytest.fixture(scope="session")
def components_page(mini):
    yield ComponentsPage(driver=mini.driver)

allure_debug.py

# -*- coding: utf-8 -*-
import os
import pytest
from pytest_mini.constant import Constant

test_cases = ["test_home.py"]  # 执行的脚本

main_list = [
    '-s', '-v',
    *test_cases,
    '--durations=0', '--clean-alluredir',
    '--alluredir', f'{Constant().REPORT_PATH}/allure_results'
]
pytest.main(main_list)
if not os.getenv("BUILD_URL"):
    os.system(f"{Constant.ALLURE_TOOL} serve {Constant().REPORT_PATH}/allure_results")  # 本地执行

test_home.py

import allure
from pytest_mini import compose


@compose(feature="小程序官方组件展示", story="组件", title='容器视图操作')
def test_view_container(components_page):
    with allure.step("点击容器视图"):
        components_page.click(components_page.view_container)
        assert False, "故意失败,查看报告截图"

ComponentsPage.py

from pytest_mini import Mini, Locator


class ComponentsPage(Mini):
    view_container = Locator('view', inner_text='视图容器', desc='组件页-视图容器')

问题

[E 2025-05-08 10:58:23 minium wx_minium#848 connect_dev_tool] [6ae3059c-838a-4c43-8fa0-b64a7f539aa1][call App.callWxMethod] receive from remote timeout
Traceback (most recent call last):
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\wx_minium.py", line 841, in connect_dev_tool
self._instantiate_app(not self.start_cmd or should_relaunch)
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\wx_minium.py", line 878, in _instantiate_app
self._get_system_info()
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\wx_minium.py", line 533, in _get_system_info
system_info = self.get_system_info()
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\base_driver\minium_log.py", line 148, in wrapper
result = func(*args, **kwargs)
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\wx_minium.py", line 909, in get_system_info
self._call_wx_method("getSystemInfoSync")
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\base_driver\minium_object.py", line 162, in _call_wx_method
return self.connection.send("App.callWxMethod", params)
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\base_driver\connection.py", line 457, in send
return self._receive_response(cmd)
File "C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\miniprogram\base_driver\connection.py", line 501, in _receive_response
raise MiniTimeoutError(
minium.framework.exception.MiniTimeoutError: [6ae3059c-838a-4c43-8fa0-b64a7f539aa1][call App.callWxMethod] receive from remote timeout

执行成功后控制台出现以下警告

============================== warnings summary ===============================
C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages_pytest\config_init.py:1204
C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages_pytest\config__init
_.py:1204: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: faker
self._mark_plugins_for_rewrite(hook)

C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages_pytest\config_init.py:1204
C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages_pytest\config__init
_.py:1204: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: pytest_mini
self._mark_plugins_for_rewrite(hook)

test_home.py::test_view_container
C:\Users\xx\xx\Local\Programs\Python\Python310\lib\site-packages\minium\native\wx_native\basenative.py:886: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead
self.__auto_authorize_thread.setDaemon(True)

共收到 2 条回复 时间 点赞
小绵羊 #1 · May 08, 2025 Author

Plugin: helpconfig, Hook: pytest_cmdline_parse
ConftestImportFailure: TypeError: plugins() got an unexpected keyword argument 'timeout' (from D:\auto_test\miniprogramtest\cases\conftest.py)
For more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning
config = pluginmanager.hook.pytest_cmdline_parse(
ImportError while loading conftest 'D:\auto_test\miniprogramtest\cases\conftest.py'.
Generating report to temp directory...
��ֹ�����������(Y/N)? �
多次执行的时候还会出现这个问题,还有乱码出现,已经设置了 pycharm 的编码为 UTF-8,同时也重启了服务,但是还是乱码显示

2Floor has deleted

https://github.com/zx490336534/pytest-mini/tree/main/demo

微信小程序 demo:https://github.com/wechat-miniprogram/miniprogram-demo
需要先构建好小程序 demo 后再执行(npm run init )

或者你直接使用自己要测试的小程序看看

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up