跳转到主要内容

基于URL测试的pytest插件

项目描述

pytest-base-url是一个简单的pytest插件,它通过命令行或配置文件提供可选的基本URL。

License PyPI Travis Issues Requirements

需求

要使用pytest-base-url,您需要以下先决条件

  • Python 3.8+或PyPy3

安装

要安装pytest-base-url

$ pip install pytest-base-url

贡献

我们欢迎贡献。

要了解更多信息,请参阅开发

指定基本URL

pytest-base-url提供了一种名为base_url的固定作用域,用于返回指定的基本URL,而不是在测试中重复或抽象基本URL。

import urllib2

def test_example(base_url):
    assert 200 == urllib2.urlopen(base_url).getcode()

使用命令行

您可以在命令行上指定基本URL

$ pytest --base-url http://www.example.com

使用配置文件

您可以使用配置文件指定基本URL(链接)

[pytest]
base_url = http://www.example.com

使用环境变量

您可以通过设置环境变量PYTEST_BASE_URL来指定基本URL。

使用固定作用域

如果您的测试框架负责启动要测试的应用程序实例,您可能无法在命令行上提供可预测的基本URL。幸运的是,很容易覆盖base_url固定作用域并返回正确的URL给测试。

在以下示例中,使用了一个live_server固定作用域来启动应用程序,而live_server.url则返回网站的基URL。

import urllib2
import pytest

@pytest.fixture
def base_url(live_server):
    return live_server.url

def test_search(base_url):
    assert 200 == urllib2.urlopen('{0}/search'.format(base_url)).getcode()

可用的实时服务器

创建自己的live_server固定作用域相对简单,但是您可能可以利用以下之一

  • Django应用程序可以使用pytest-django的live_server固定作用域(链接)

  • Flask应用程序可以使用pytest-flask的live_server固定作用域(链接)

验证基本URL

如果您为不可用的网站指定了基本URL,则使用该基本URL的所有测试很可能会失败。为了避免运行此实例中的每个测试,您可以启用基本URL验证。这将检查基本URL是否响应,然后再继续测试套件。要启用此功能,请指定--verify-base-url命令行选项或将环境变量VERIFY_BASE_URL设置为TRUE

跳过基本URL

您可以根据基本URL的值跳过测试,只要它是由命令行或配置文件提供的

import urllib2
import pytest

@pytest.mark.skipif(
    "'dev' in config.getoption('base_url')",
    reason='Search not available on dev')
def test_search(base_url):
    assert 200 == urllib2.urlopen('{0}/search'.format(base_url)).getcode()

不幸的是,如果URL由固定作用域提供,则在测试收集时无法知道此值。

资源

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分发

pytest_base_url-2.1.0.tar.gz (6.7 kB 查看哈希值)

上传时间:

构建分发

pytest_base_url-2.1.0-py3-none-any.whl (5.3 kB 查看哈希值)

上传时间: Python 3

由以下支持