pytest(四)firture自定义用例预置条件

实现用例1需要先登录,用例2不要登录,用例3需要先登录,很显然不能用setup和teardown来实现了,自定义测试用例的预置条件

fixture的优势

  • 命名方式灵活,不局限于setup和teardown这些命名
  • conftest.py配置里可以实现数据共享,不需要import就能自动找到一些配置
  • scope = "module"可以实现多个.py跨文集共享前置
  • scope ="session"以实现多个.py跨文集使用一个session来完成多个用例
  • 使用装饰器标记fixture的功能:fixture(scope=“function”,params=None,autouse =False,ids=NOne,name =None):

Fixtures 可以选择使用yield语句为测试函数提供它们的值,而不是return。在这种情况下,yield语句之后的代码块作为拆卸代码执行,

而不管测试结果如何。fixture功能必须只产生一次

代码模板:(代码可能有空格问题,因为不是从pycharm里面复制过来的,需要注意)

#新建一个文件test_开头 如test_fix.py
import pytest

@pytest.fixture()

def login():
      print("输入帐号,密码 先登录")


def test_s1(login):
       print("用例1:登录后,进入我的园子动作")


def test_s2()#不传login
       print("用例2:不用登录,比如浏览博客")


def test_s3(login):
       print("用例3:登录后,评论博客")


if __name =="__main__":
       
    pytest.main(["-s", "test_fix.py"])

  

       

原文地址:https://www.cnblogs.com/zhangying1/p/14273410.html