应用场景:
1. 创建订单之前,需要先添加购物车
2. 在执行订单接口用例之前,要保证添加购物车接口用例完成,并且是pass
应用办法:
- 可以使用pytest插件
pytest插件介绍
1.官方插件地址介绍:https://docs.pytest.org/en/latest/plugins.html,可点击,查看插件列表,或直接访问第2步地址
2. 插件列表网址:https://plugincompat.herokuapp.com 包含很多插件包,大家可依据工作的需求选择使用。
3. 在插件列表中找到,dependency名字,该插件管理测试用例依赖关系
pytest 插件dependency安装
1. 点击上面图片中pytest-dependency链接,进入下个页面,里面详细介绍了该插件以及安装方法
2. 直接pip进行安装即可,如果python3,可以使用pip3 install pytest-dependency进行安装,看到如下内容,表示安装成功
pytest 插件dependency使用
英文好的可以直接看官方文档:https://pytest-dependency.readthedocs.io/en/stable/usage.html#basic-usage
1. 单独运行订单接口(test_order),代码如下
import pytest
def test_cart():
print("添加到购物车")
def test_order():
print("创建订单")
2. 我们的目的是要增加依赖
3. 可以使用安装的插件dependency来实现,代码如下
@pytest.mark.dependency()
def test_cart():
print("添加到购物车")
@pytest.mark.dependency(depends=["test_cart"])
def test_order():
print("创建订单")
代码解释:
* 只需要在测试用例增加@pytest.mark.dependency() 标识即可,这里面要注意,假如是order依赖cart,故在order的用例上,需要增加参数depends,depends对应测试用例的名称,这里要注意,如果要执行用例必须按pytest的默认运行规则,即用例前要加上test_,而且顺序要注意,要先执行test_cart在执行test_order,如果要先执行test_order,查看依赖时发现test_cart这个用例没有执行认为结果不通过,所以就不会执行,结果会显示skip
4. 来,我们执行一下,看下结果
5. 假如先执行创建订单,后添加购物车,结果是不是上面我们分析的那样呢,我们还看一下代码和结果
代码:只是调换了用例的顺序,执行顺序:test_order -> test_cart
@pytest.mark.dependency(depends=["cart"],scope="module")
def test_order():
print("创建订单")
@pytest.mark.dependency(name='cart')
def test_cart():
print("添加到购物车")
结果,会发现test_order是skipped,忽略掉了未执行:
6. 下面我们调回最开始的顺序,让test_cart置为false,我们来看一下test_order的结果,应该也是skipped
代码:
@pytest.mark.dependency(name='cart')
def test_cart():
print("添加到购物车")
assert False
@pytest.mark.dependency(depends=["cart"])
def test_order():
print("创建订单")
结果,一个失败,一个忽略未执行