鱼C论坛

 找回密码
 立即注册
查看: 830|回复: 5

playwright+pytest执行用例报错No module named 'pytest_base_url'

[复制链接]
发表于 2023-7-19 10:48:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
直接上源码
import pytest
from py.xml import html
from config import RunConfig
import allure
from slugify import slugify
from common.config import *
from playwright.sync_api import sync_playwright, expect



# 定义基本测试环境
@pytest.fixture(scope='session')
def base_url():
    return RunConfig.baseUrl
import os
from common.config import *

'''
运行测试配置
'''

class RunConfig:

    # 运行测试用例的目录或文件
    # case_path = os.path.join(case_path, "test_case")
    cases_path = os.path.join(case_path, "test_demo.py")
    #

    # 配置浏览器驱动类型(chromium, firefox, webkit)
    browser = "chromium"

    # 运行模式(headless, headful)
    # mode = "headless"
    mode = "headful"

    # 配置运行的 URL
    baseUrl = "XXX"

    # 失败重跑次数
    rerun = "0"

    # 当达到最大失败数,停止执行
    max_fail = "5"

    # 报告路径(不需要修改)
    NEW_REPORT = None
import sys
from time import sleep
from playwright.async_api import Dialog
from seldom.testdata.conversion import json_to_list
from page.element import Element
import allure
import pytest
from common.config import  *

@allure.feature('平台基础测试')
class TestPlatformFoundation():

    @allure.story("test001-平台登录")
    def test_platform_foundation_001(self, page, base_url):
        """
        名称:平台登录
        步骤:
        1、打开浏览器
        2、输入账号
        3、输入密码
        4、点击登录
        检查点:
        * 检查登录是否成功
        """
        page.goto(base_url)

报错如下:
Traceback (most recent call last):
  File "D:\Program Files\JetBrains\PyCharm 2021.3.2\plugins\python\helpers\pycharm\_jb_pytest_runner.py", line 51, in <module>
    sys.exit(pytest.main(args, plugins_to_load + [Plugin]))
  File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 147, in main
    config = _prepareconfig(args, plugins)
  File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 328, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
  File "D:\python\lib\site-packages\pluggy\hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "D:\python\lib\site-packages\pluggy\manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "D:\python\lib\site-packages\pluggy\manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "D:\python\lib\site-packages\pluggy\callers.py", line 203, in _multicall
    gen.send(outcome)
  File "D:\python\lib\site-packages\_pytest\helpconfig.py", line 103, in pytest_cmdline_parse
    config: Config = outcome.get_result()
  File "D:\python\lib\site-packages\pluggy\callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "D:\python\lib\site-packages\pluggy\callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1075, in pytest_cmdline_parse
    self.parse(args)
  File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1425, in parse
    self._preparse(args, addopts=addopts)
  File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1305, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "D:\python\lib\site-packages\pluggy\manager.py", line 299, in load_setuptools_entrypoints
    plugin = ep.load()
  File "D:\python\lib\importlib\metadata.py", line 86, in load
    module = import_module(match.group('module'))
  File "D:\python\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pytest_base_url'

进程已结束,退出代码1

空套件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-19 10:48:39 | 显示全部楼层
根据您提供的代码和报错信息,可以看出问题是找不到名为 'pytest_base_url' 的模块。根据代码分析,没有在代码中找到导入 'pytest_base_url' 模块的语句。因此,系统在运行时无法找到该模块,从而抛出了 ModuleNotFoundError 错误。

解决这个问题的方法是确保 'pytest_base_url' 模块已经正确安装,并在代码的合适位置进行导入。如果该模块是您自己编写的,您需要将模块文件(.py 文件)放置在正确的位置,并使用正确的导入语句将其引入到代码中。如果是第三方模块,您可以使用以下命令安装该模块:
pip install pytest_base_url
请注意,我这里假设 'pytest_base_url' 是一个真正存在的模块名。如果是其他模块名,请使用正确的模块名进行安装和导入。

另外,还需要检查代码中是否存在其他导入语句,可能存在其他未安装或未导入的模块,需要一并进行安装和导入操作。

希望我的回答对您有帮助!如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-19 10:48:46 | 显示全部楼层
错误提示显示你的环境中没有找到名为 'pytest_base_url' 的模块。你需要安装这个模块才能解决这个问题。

你可以使用以下命令来安装 'pytest_base_url':
pip install pytest-base-url
这个命令会从Python的包索引(PyPI)下载并安装 'pytest-base_url'。

如果你已经安装了这个模块,但仍然收到这个错误,那可能是因为你的Python环境没有正确设置。你需要确保你的Python解释器和运行你的代码的解释器是同一个。你可以检查你的IDE设置(例如PyCharm)或你的环境变量来确认这一点。

如果你使用的是虚拟环境,你需要在虚拟环境中安装 'pytest-base_url'。你可以先激活你的虚拟环境,然后再运行上面的安装命令。

如果以上步骤都不能解决你的问题,你可能需要检查你的代码是否有错误。例如,你可能在不应该导入 'pytest_base_url' 的地方导入了它,或者你可能错误地导入了一个名字类似但实际上不存在的模块。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-19 10:50:33 | 显示全部楼层
isdkz 发表于 2023-7-19 10:48
错误提示显示你的环境中没有找到名为 'pytest_base_url' 的模块。你需要安装这个模块才能解决这个问题。

...

前面两步都做了,还是报错,并不是虚拟环境,那么我需要创建虚拟环境安装pytest_base_url吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-19 11:13:16 | 显示全部楼层
陶远航 发表于 2023-7-19 10:48
根据您提供的代码和报错信息,可以看出问题是找不到名为 'pytest_base_url' 的模块。根据代码分析,没有在 ...

pip安装过了还是报错
(<class 'ModuleNotFoundError'>, ModuleNotFoundError("No module named 'pytest_base_url'"), <traceback object at 0x0000020E294ABD40>)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-19 11:14:54 | 显示全部楼层
PS D:\Project\defineuitest> pip install pytest_base_url  
Requirement already satisfied: pytest_base_url in d:\python\lib\site-packages (2.0.0)
Requirement already satisfied: pytest<8.0.0,>=3.0.0 in d:\python\lib\site-packages (from pytest_base_url) (7.4.0)
Requirement already satisfied: requests>=2.9 in d:\python\lib\site-packages (from pytest_base_url) (2.25.0)
Requirement already satisfied: colorama in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (0.4.4)
Requirement already satisfied: tomli>=1.0.0 in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (2.0.1)
Requirement already satisfied: exceptiongroup>=1.0.0rc8 in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (1.1.2)
Requirement already satisfied: packaging in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (20.8)
Requirement already satisfied: pluggy<2.0,>=0.12 in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (0.13.1)
Requirement already satisfied: iniconfig in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (1.1.1)
Requirement already satisfied: chardet<4,>=3.0.2 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (2023.5.7)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (1.26.2)
Requirement already satisfied: pyparsing>=2.0.2 in d:\python\lib\site-packages (from packaging->pytest<8.0.0,>=3.0.0->pytest_base_url) (2.4.7)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 18:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表