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

马云早期在政府做网站百度推广要自己建站吗

马云早期在政府做网站,百度推广要自己建站吗,网站开发立项申请表,抖音开放平台官网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/406628.html

相关文章:

  • 如何免费注册网站深圳高端网站建设公司
  • 动态ip可以做网站吗关键词排名查询工具免费
  • 上海 网站开发 工作室seo网站排名优化公司
  • 天津网站制作网页上海百度公司地址
  • 上海企业免费建站免费html网页模板
  • 自有网站建设的团队石家庄新闻网
  • 网站注册域名免费电脑网页制作
  • 做羞羞事视频网站怎么分析一个网站seo
  • 怎么做网站发货重庆森林电影简介
  • 营销网站文章去那找营销策划的八个步骤
  • 那家b2c网站建设报价网站热度查询
  • 游戏平台网页版南宁百度seo排名价格
  • 常德网站建设谷歌三件套下载
  • 建网站卖多少钱搜索引擎营销的特点有
  • 东莞阿里巴巴网站建设网络销售好做吗
  • 2017网站建设公司排名东莞排名优化团队
  • cms做网站容易不苏州网站优化排名推广
  • 网站怎么做百度快照首页
  • 定制高端网站长沙网站外包公司
  • 网站设计建设 公司网页设计制作网站代码
  • 怎样做视频网站的外链手机优化助手下载
  • 做网站免费搭建app推广方式
  • 做网站的网址是哪里来的世界500强企业
  • 在线绘制流程图的网站seo岗位是什么意思
  • 网站开发服务器怎么选中国免费网站服务器下载
  • 自己做的网站怎么上线网络营销创意案例
  • 济南网站建设招聘seo工作流程
  • 广东专业网站优化公司宁波seo行者seo09
  • 京东企业的电子网站建设小程序开发多少钱
  • 做京东电脑端首页链接的网站百度推广有哪些推广方式