鱼C论坛

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

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

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

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

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

x
直接上源码
  1. import pytest
  2. from py.xml import html
  3. from config import RunConfig
  4. import allure
  5. from slugify import slugify
  6. from common.config import *
  7. from playwright.sync_api import sync_playwright, expect



  8. # 定义基本测试环境
  9. @pytest.fixture(scope='session')
  10. def base_url():
  11.     return RunConfig.baseUrl
复制代码

  1. import os
  2. from common.config import *

  3. '''
  4. 运行测试配置
  5. '''

  6. class RunConfig:

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

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

  13.     # 运行模式(headless, headful)
  14.     # mode = "headless"
  15.     mode = "headful"

  16.     # 配置运行的 URL
  17.     baseUrl = "XXX"

  18.     # 失败重跑次数
  19.     rerun = "0"

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

  22.     # 报告路径(不需要修改)
  23.     NEW_REPORT = None
复制代码

  1. import sys
  2. from time import sleep
  3. from playwright.async_api import Dialog
  4. from seldom.testdata.conversion import json_to_list
  5. from page.element import Element
  6. import allure
  7. import pytest
  8. from common.config import  *

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

  11.     @allure.story("test001-平台登录")
  12.     def test_platform_foundation_001(self, page, base_url):
  13.         """
  14.         名称:平台登录
  15.         步骤:
  16.         1、打开浏览器
  17.         2、输入账号
  18.         3、输入密码
  19.         4、点击登录
  20.         检查点:
  21.         * 检查登录是否成功
  22.         """
  23.         page.goto(base_url)
复制代码


报错如下:
  1. Traceback (most recent call last):
  2.   File "D:\Program Files\JetBrains\PyCharm 2021.3.2\plugins\python\helpers\pycharm\_jb_pytest_runner.py", line 51, in <module>
  3.     sys.exit(pytest.main(args, plugins_to_load + [Plugin]))
  4.   File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 147, in main
  5.     config = _prepareconfig(args, plugins)
  6.   File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 328, in _prepareconfig
  7.     config = pluginmanager.hook.pytest_cmdline_parse(
  8.   File "D:\python\lib\site-packages\pluggy\hooks.py", line 286, in __call__
  9.     return self._hookexec(self, self.get_hookimpls(), kwargs)
  10.   File "D:\python\lib\site-packages\pluggy\manager.py", line 93, in _hookexec
  11.     return self._inner_hookexec(hook, methods, kwargs)
  12.   File "D:\python\lib\site-packages\pluggy\manager.py", line 84, in <lambda>
  13.     self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  14.   File "D:\python\lib\site-packages\pluggy\callers.py", line 203, in _multicall
  15.     gen.send(outcome)
  16.   File "D:\python\lib\site-packages\_pytest\helpconfig.py", line 103, in pytest_cmdline_parse
  17.     config: Config = outcome.get_result()
  18.   File "D:\python\lib\site-packages\pluggy\callers.py", line 80, in get_result
  19.     raise ex[1].with_traceback(ex[2])
  20.   File "D:\python\lib\site-packages\pluggy\callers.py", line 187, in _multicall
  21.     res = hook_impl.function(*args)
  22.   File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1075, in pytest_cmdline_parse
  23.     self.parse(args)
  24.   File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1425, in parse
  25.     self._preparse(args, addopts=addopts)
  26.   File "D:\python\lib\site-packages\_pytest\config\__init__.py", line 1305, in _preparse
  27.     self.pluginmanager.load_setuptools_entrypoints("pytest11")
  28.   File "D:\python\lib\site-packages\pluggy\manager.py", line 299, in load_setuptools_entrypoints
  29.     plugin = ep.load()
  30.   File "D:\python\lib\importlib\metadata.py", line 86, in load
  31.     module = import_module(match.group('module'))
  32.   File "D:\python\lib\importlib\__init__.py", line 127, in import_module
  33.     return _bootstrap._gcd_import(name[level:], package, level)
  34.   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  35.   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  36.   File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  37.   File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  38.   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  39.   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  40.   File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
  41. ModuleNotFoundError: No module named 'pytest_base_url'

  42. 进程已结束,退出代码1

  43. 空套件
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

请注意,我这里假设 'pytest_base_url' 是一个真正存在的模块名。如果是其他模块名,请使用正确的模块名进行安装和导入。

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

希望我的回答对您有帮助!如果还有其他问题,请随时提问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你可以使用以下命令来安装 'pytest_base_url':
  1. pip install pytest-base-url
复制代码

这个命令会从Python的包索引(PyPI)下载并安装 'pytest-base_url'。

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

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

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

使用道具 举报

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

...

前面两步都做了,还是报错,并不是虚拟环境,那么我需要创建虚拟环境安装pytest_base_url吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

pip安装过了还是报错
  1. (<class 'ModuleNotFoundError'>, ModuleNotFoundError("No module named 'pytest_base_url'"), <traceback object at 0x0000020E294ABD40>)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-19 11:14:54 | 显示全部楼层
  1. PS D:\Project\defineuitest> pip install pytest_base_url  
  2. Requirement already satisfied: pytest_base_url in d:\python\lib\site-packages (2.0.0)
  3. Requirement already satisfied: pytest<8.0.0,>=3.0.0 in d:\python\lib\site-packages (from pytest_base_url) (7.4.0)
  4. Requirement already satisfied: requests>=2.9 in d:\python\lib\site-packages (from pytest_base_url) (2.25.0)
  5. Requirement already satisfied: colorama in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (0.4.4)
  6. 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)
  7. 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)
  8. Requirement already satisfied: packaging in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (20.8)
  9. 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)
  10. Requirement already satisfied: iniconfig in d:\python\lib\site-packages (from pytest<8.0.0,>=3.0.0->pytest_base_url) (1.1.1)
  11. Requirement already satisfied: chardet<4,>=3.0.2 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (3.0.4)
  12. Requirement already satisfied: idna<3,>=2.5 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (2.10)
  13. Requirement already satisfied: certifi>=2017.4.17 in d:\python\lib\site-packages (from requests>=2.9->pytest_base_url) (2023.5.7)
  14. 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)
  15. 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)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-23 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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