基于URL测试的pytest插件
项目描述
pytest-base-url是一个简单的pytest插件,它通过命令行或配置文件提供可选的基本URL。
需求
要使用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固定作用域相对简单,但是您可能可以利用以下之一
验证基本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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 02748589a54f9e63fcbe62301d6b0496da0d10231b753e950c63e03aee745d45 |
|
MD5 | 997406179aae7d7991abb498d25dbf5f |
|
BLAKE2b-256 | ae1ab64ac368de6b993135cb70ca4e5d958a5c268094a3a2a4cac6f0021b6c4f |