当前位置: 首页 > wzjs >正文

马云早期在政府做网站网站推广找客户

马云早期在政府做网站,网站推广找客户,石家庄+外贸网站建设公司,html中文网站模板下载1.pytest中的xunit风格前后置处理 pytest中用例的前后置可以直接使用类似于unittest中的前后置处理,但是pytest中的前后置处理方式更 加丰富,分为模块级、类级、方法级、函数级等不同等级的前后置处理,具体见下面的代码: test_…

1.pytest中的xunit风格前后置处理

pytest中用例的前后置可以直接使用类似于unittest中的前后置处理,但是pytest中的前后置处理方式更

加丰富,分为模块级、类级、方法级、函数级等不同等级的前后置处理,具体见下面的代码:

test_demo_001.py文件

def setup_function():#类外使用
print('函数级的前置,每个函数级用例前均运行一次')
def teardown_function():#类外使用
print('函数级的前置,每个函数级用例后均运行一次')
def test_function_001():
print('测试:函数级的用例test_function_001')
def test_function_002():
print('测试:函数级的用例test_function_002')
def setup_module():
print('模块级的前置,每个文件中所有用例执行前仅运行一次')
def teardown_module():
print('模块级的后置,每个文件中所有用例执行后仅运行一次')
class TestDemo001:
@classmethod
def setup_class(cls):
print('类级的前置,TestDemo001类下的所有用例执行前运行一次')
@classmethod
def teardown_class(cls):
print('类级的后置,TestDemo001类下的所有用例执行后运行一次')
def setup_method(self): #类中使用
print('方法级的前置,每个方法级用例前均运行一次')
def teardown_method(self): #类中使用
print('方法级的后置,每个方法级用例后均运行一次')
def test_aaa_001(self):
print('测试:类下方法级的用例test_aaa_001')
def test_aaa_002(self):
print('测试:类下方法级的用例test_aaa_002')
class TestDemo002:
@classmethod
def setup_class(cls):
print('类级的前置,TestDemo002类下的所有用例执行前运行一次')
@classmethod
def teardown_class(cls):
print('类级的后置,TestDemo002类下的所有用例执行后运行一次')
def setup_method(self): #等价于def setup(self):
print('方法级的前置,每个方法级用例前均运行一次')
def teardown_method(self): #等价于def teardown(self):
print('方法级的后置,每个方法级用例后均运行一次')
def test_bbb_001(self):
print('测试:类下方法级的用例test_bbb_001')
def test_bbb_002(self):
print('测试:类下方法级的用例test_bbb_002')
'''
setup/teardown 等价于 setup_method/teardown_method;2者仅使用一种即可,如果同时时候,只使
用setup_method/teardown_method
整体运行过程:
setup_module
setup_function--->test_function_001--->teardown_function
setup_function--->test_function_002--->teardown_function
setup_class #TestDemo001的
setup_method--->test_aaa_001--->teardown_method
setup_method--->test_aaa_002--->teardown_method
teardown_class #TestDemo001的
setup_class #TestDemo002的
setup_method--->test_bbb_001--->teardown_method
setup_method--->test_bbb_002--->teardown_method
teardown_class #TestDemo002的
teardown_module
'''

2.使用fixture实现灵活的用例前后置处理

使用Xunit风格的前置后置的使用,我们发现这种前后置无法复用,在另外的一个.py文件或者.py文件中 的类使用时,需要重新再写,相对不灵活。pytest结合fixture可以实现用例进行灵活的前后置处理。

2.1.@pytest.fixture进行用例的前置处理

import pytest
@pytest.fixture()
def aaa():
print('这是用例的前置操作')
def test_001(aaa):
print('用例test_001')
@pytest.fixture #fixture中不传参数,可以不带括号
def bbb():
print('用例前置操作,并给返回值')
return 100
def test_002(bbb):
print('用例test_002')
print('可以使用前置函数的名称来作为其返回值使用:bbb={}'.format(bbb))
def test_003(bbb,aaa):
print('用例test_003')
print('可以同时做多个前置操作,操作顺序按传递的参数顺序来进行')
print('我们可以发现前置函数aaa,bbb一次定义,可以多次使用,体现了灵活性')
print(bbb,aaa)
if __name__ == '__main__':
pytest.main()

2.2.@pytest.fixture的嵌套使用

#fixture的嵌套,会先调用里层的fixture,在调用外层的fixture
@pytest.fixture()
def aaa():
print('111111111111')
return 'aaa'
@pytest.fixture()
def bbb(aaa):
print('22222222')
return ['bbb',aaa]
def test_001(bbb):
print('测试用例test_001')
print(bbb)
if __name__ == '__main__':
pytest.main()

2.3.@pytest.fixture结合@pytest.mark.parametrize()实现参数

import yaml,pytest

#读取参数化数据的文件内容
def get_yaml_data(yaml_path):
with open(yaml_path,'r',encoding='utf-8') as f:
data = yaml.safe_load(f)
return data
#获取yaml文件的数据
yaml_data = get_yaml_data('./login.yaml')
@pytest.fixture()
def case_data(request):
return request.param
#indirect=True时'case_data'当做函数运行,就是这里定义的fixture
#indirect=False时'case_data'当做普通变量使用,默认值为False
#工作中建议使用默认值:False,就当做普通变量使用即可,这时可以不使用fixture进行参数化
@pytest.mark.parametrize('case_data',yaml_data,indirect=True)
def test_002(case_data):
print(case_data)
if __name__ == '__main__':
pytest.mian(['-vs','demo1.py'])

2.4.直接使用@pytest.fixture()来进行参数化

#演示代码时,需要先在当前目下新建login.yaml文件
#不使用@pytest.mark.parametrize()来参数化,直接利用@pytest.fixture()的传参功能进行参数化
import yaml,pytest
#封装读取参数化数据的文件内容
def get_yaml_data(yaml_path):
with open(yaml_path,'r',encoding='utf-8') as f:
data = yaml.safe_load(f)
return data
#通过在fixture中使用parmas接受参数化的值,将值传递给固定的接受参数requests
#如果传入的是列表,会将列表中的每个元素返回,如果传入的是字典会将字的每个key返回
@pytest.fixture(params=get_yaml_data('./login.yaml')[0])
def case_data(request):
return request.param
#测试用例test_003使用fixture:case_data,case_data的值就是fixture函数中的返回值
def test_003(case_data):
print(case_data)

2.5.结合yield来进行前后置处理

import pytest,allure
from selenium import webdriver
@pytest.fixture()
def brower():
driver = webdriver.Chrome()
yield driver
driver.quit()

 

 

http://www.dtcms.com/wzjs/230351.html

相关文章:

  • 微网站建设需付费吗下载百度2023最新版安装
  • 做电影网站如何赚钱google chrome网页版
  • 做网站360业务2023年新闻热点事件
  • 网站建设试卷摄影国外引擎搜索
  • 网站开发的客户群体百度链接提交入口
  • 建一个商城网站需要多久重庆人力资源和社会保障网
  • 自己做电商网站吗点击器 百度网盘
  • 0511城市建设网站棚户区改造百度上海推广优化公司
  • 搜索网站排行榜seo关键词快速获得排名
  • 连云港网站建设网站百度提问首页
  • _count-views_all wordpress5g网络优化工程师
  • 兰亭集势网站模板重庆seo整站优化系统
  • 做电影网站危险吗百度app
  • jsp 做网站需要什么小程序开发系统
  • jsp与asp做的网站短视频推广策略
  • 乌鲁木齐培训网站建设成人厨师短期培训班
  • 用dw做网站 的过程推动防控措施持续优化
  • 网站建设功能设计优化培训内容
  • 做直播的小视频在线观看网站百度手机助手最新版下载
  • 中国做网站知名的公司关键词提取
  • 高端医疗网站模板免费下载百度竞价关键词出价技巧
  • 酒店网站制作策划东莞百度快速排名优化
  • 长春有几个区太原网站优化
  • 为什么有的网站只有版权没有备案保定seo排名
  • 湖南专业做网站公司排名新手怎么开始做电商
  • 千博医院网站模板免费seo网站自动推广软件
  • app设计网站模板免费下载seo下拉优化
  • 下载源码的网站高效统筹疫情防控和经济社会发展
  • 网站 字体站长工具箱
  • 如何快速的建设网站公司域名注册步骤