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

外贸网站推广机构网站404怎么解决

外贸网站推广机构,网站404怎么解决,个人网站 不备案,百度域名书写conftest介绍 pytest中定义个conftest.py来实现数据#xff0c;参数#xff0c;方法、函数的共享。 conftest.py 的文件名称是固定的#xff0c; pytest 会自动识别该文件#xff0c;可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 文件参数方法、函数的共享。 conftest.py 的文件名称是固定的 pytest 会自动识别该文件可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 文件一般我们都是在工程根目录下设置的 conftest 文件这样会起到一个全局的作用。 我们也可以在不同的子目录下放 conftest.py 这样作用范围只能在该层级的子目录下生效。控制作用域 conftest.py三个功能 设置项目和fixture加载插件在 conftest.py 中初始化插件或外部库指定钩子函数设置全局变量、环境变量或模拟外部服务 层级化配置 目录结构示例 project/ ├── conftest.py          # 作用范围全局 └── tests/     ├── conftest.py      # 作用范围tests 目录     └── subdir/         ├── conftest.py  # 作用范围subdir 目录         └── test_b.py 优先级子目录的 conftest.py 优先级高于父目录同名 Fixture 会被覆盖。 conftest特点 conftest.py可以跨.py文件调用有多个.py文件调用时可让conftest.py只调用了一次fixture或调用多次fixtureconftest.py与运行的用例要在同一个pakage下并且有init.py文件不需要import导入 conftest.pypytest用例会自动识别该文件放到项目的根目录下就可以全局目录调用了如果放到某个package下那就在改package内有效可有多个conftest.pyconftest.py配置脚本名称是固定的不能改名称conftest.py文件不能被其他文件导入所有同目录测试文件运行前都会执行conftest.py文件 conftest使用场景 fixture适用于在同一个py文件中多个用例执行时的使用而conftest.py方式适用于多个py文件之间的数据共享。 比如常见的有以下场景 请求接口需要共享登录接口的token/session多个case共享一套测试数据多个case共享配置信息 conftest示例 项目结构 # conftest.pyimport pytestpytest.fixture(scopesession)# pytest.fixture(scopemodule)# pytest.fixture(scopeclass)# pytest.fixture(scopefunction)def get_token():token qeehfjejwjwjej11sss22print(conftest中輸出token:%s % token)return token # test_02.pyimport pytestclass Test(object):def test2(self, get_token):token qeehfjejwjwjej11sss22print(【执行test02.py-Test类-test2用例,获取get_token%s】 % get_token)assert get_token token # test_03.pyimport pytestclass Test(object):def test3(self, get_token):token qeehfjejwjwjej11sss22print(【执行test03.py-Test类-test3用例,获取get_token%s】 % get_token)assert get_token tokendef test4(self, get_token):token qeehfjejwjwjej11sss22print(【执行test03.py-Test类-test4用例,获取get_token%s】 % get_token)assert get_token token # run.pyimport pytestif __name__ __main__:pytest.main([-s]) 执行结果 当conftest.py中的fixture(scopesession)时所有的测试py文件执行前执行一次当conftest.py中的fixture(scopemodule)时每一个测试.py文件执行前都会执行一次conftest文件中的fixture当conftest.py中的fixture(scopeclass)时每一个测试文件中的测试类执行前都会执行一次conftest文件中的当conftest.py中的fixture(scopefunction)时所有文件的测试用例执行前都会执行一次conftest文件中的fixture conftest结合fixture使用 scope参数为session所有测试.py文件执行前执行一次scope参数为module每一个测试.py文件执行前都会执行一次conftest文件中的fixturescope参数为class每一个测试文件中的测试类执行前都会执行一次conftest文件中的scope参数为function所有文件的测试用例执行前都会执行一次conftest文件中的fixture conftest结合fixture使用示例 yield实现teardown 每个测试用例完成后应该做好资源回收此时就需要使用到 teardown函数的善后工作了。 用 fixture 实现 teardown 并不是一个独立的函数而是用 yield 关键字来开启 teardown 操作。 fixture与conftest结合之前置后置处理 addfinalizer实现回收用例后置处理 除了 yield 可以实现 teardown 在 request-context 对象中注册 addfinalizer 方法也可以实现终结函数。 在用法上 addfinalizer 跟 yield 是不同的需要你去注册作为终结器使用的函数。 例如增加一个函数并且注册成终结函数。 pytest.fixture(scope )范围依旧可控制作用域 # conftest.pyimport pytestpytest.fixture()def get_token(request):print(用例执行前)token qeehfjejwjwjej11sss22def teardown01():print(用例后置处理111)def teardown02():print(用例后置处理222)request.addfinalizer(teardown01)request.addfinalizer(teardown02)return token 执行结果 fixture参数传递 参数传递有两个方向一个是case给conftest.py传递参数另一个是case中pytest.mark.parametrize给用例传递参数下面介绍一下常用的参数传递方式。 parametrize向下给case传递参数参数化执行不向fixture传递参数 pytest.fixture()def ft_func(request):data creturn datapytest.mark.parametrize(list, [a, b])def test_create_func(list, ft_func):print(flist参数化中数据{list}\n fixture获取值{ft_func}) # 执行两次分别传入a和b参数if __name__ __main__:pytest.main([-s]) 执行结果 parametrize向上给fixture传递参数 当 indirectTrue时prepareas才会当成一个函数去执行而不是一个参数并将data第二个参数当做参数传入函数。 import pytest传单个参数当 indirectTruegetuser才会当成一个函数去执行而不是一个参数并将data当做参数传入函数。test_getuser(self, getuser)这里的getuser是获取fixture返回的值。# pytest.fixture(params[1,2,3,linda])pytest.fixture()def getuser(request):user request.paramprint(f 获取用户: {user})return userdata [lilei, jojo, hanmeimei]# 用英文哈,中文会被加密ids [f mark input {user} for user in data]pytest.mark.parametrize(getuser, data, idsids, indirectTrue)class TestClass(object):def test_getuser(self, getuser):print(f输出用户信息{getuser}) 执行结果 import pytest传多个参数(结合字典的使用)pytest.fixture()def getlogins(request):param request.paramprint(f 获取用户名: {param[username]} 获取密码{param[password]})return paramdata [{username: jojo, password: 123456},{username: hanmeimei, password: 123456},{username: lilei, password: 123456}]pytest.mark.parametrize(getlogins, data, indirectTrue)def test_getlogin(getlogins):print(f用户名{getlogins[username]} 密码{getlogins[password]}) 执行结果 import pytest一个装饰器加多个fixture单参数传递pytest.fixture(scopemodule)def getusername(request):username request.paramprint(f username is {username})return usernamepytest.fixture(scopemodule)def getpassword(request):password request.paramprint(f password is {password})return passworddata [(jojo, 1), (lilei, 123654)]pytest.mark.parametrize(getusername,getpassword, data, indirectTrue)def test_getUserinfo(getusername, getpassword):print(f用户名{getusername} 密码{getpassword}) 执行结果 import pytest一个装饰器加多个fixture多参数传递pytest.fixture(scopemodule)def get_user(request):param request.param# print(type(param))print(f获取用户信息 用户{param[name]} 年龄:{param[age]})return parampytest.fixture(scopemodule)def get_account(request):param request.param# print(type(param))print(f获取账号信息 账号{param[username]}\n密码 {param[password]})return paramdata [({name: jojo, age: 18}, {username: jojo001, password: 123456}),({name: zhangSan, age: 19}, {username: zhangSan001, password: 123451})]pytest.mark.parametrize(get_user,get_account, data, indirectTrue)def test_get_user_info(get_user, get_account):print(f用户信息{get_user} \n用户账号{get_account}) 执行结果 import pytest多个装饰器多个fixturepytest.fixture()def users(request):user request.paramprint(f 用户名{user})return userpytest.fixture()def pwds(request):pwd request.paramprint(f 密码{pwd})return pwddata1 [lilei, jojo]data2 [1, 2]pytest.mark.parametrize(users, data1, indirectTrue)pytest.mark.parametrize(pwds, data2, indirectTrue)def test_getuserinfo(users, pwds):print(f用户名为{users} 密码为{pwds}) 执行结果 import pytestfixture未传参数使用默认值/传参数使用参数pytest.fixture(scopemodule)def getusername(request):username 王五print(request)if hasattr(request, param):username request.paramprint(f username is {username})return usernamedata [张三, 李四]# 使用fixture中默认参数def test_user001(getusername):print(f用户名{getusername})# 传参给fixture并使用pytest.mark.parametrize(getusername, data, indirectTrue)def test_user002(getusername):print(f用户名{getusername}) 执行结果 【自动化测试】Pytest之conftest详解 - 三叔测试笔记 - 博客园
http://www.dnsts.com.cn/news/36513.html

相关文章:

  • 道里网站运营培训网站设计形式
  • 手机网站宽度多少合适wordpress redis 刷新
  • python 电商网站开发云渲染网站开发
  • ip库网站源码国际化网站设计
  • 长沙最好网站建设网站建设视觉效果
  • 网站开发看掉一些功能东阳市城建设局网站
  • 电商网站商品页的优化目标是什么?免费网络游戏排行榜
  • 北京工程建设交易中心网站偃师做网站
  • 旅游景点网站建设毕业设计说明动力网站
  • 网站在手机上内页图不显示厦门百度seo点击软件
  • 我的网站搜索不到了领地免费网站
  • 泉州百度开户百度seo搜索引擎优化厂家
  • 网站app在线生成器太原市网站
  • y2学年做的租房网站网站首页设计及运行效果
  • 做网站需完成的软件铁路建设网站
  • 高端医疗网站建设wordpress在文章中加背景图片
  • 深圳住房网站app重庆网站建设培训
  • 网站制作分工wordpress后台颜色
  • 建设彩票网站多少钱合肥红酒网站建设
  • 网站背景自动变色重庆广告公司前十名
  • 百度网站建立指数基金有哪些
  • 中企动力网站建设 长春wordpress菜单右上角
  • 惠州网站排名提升百度不让访问危险网站怎么办
  • 如果做自己的网站微商城是正规的平台吗
  • 利用业务时间做的网站与公司有关吗杭州seo博客
  • 企业网站 批量备案wordpress 微博】
  • 企业网站源码wapwordpress头像不显示
  • 网站年报公示怎么做wordpress 拿shell
  • 创意网站交互大型的建设工程类考试辅导网站
  • 长沙网站建设260e拍卖网站建设需求