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

网站建设运营协议书市场营销

网站建设运营协议书,市场营销,新疆建设工程信息网app,云南省网站开发公司这里写目录标题一、pytest用法总结二、pytest.ini是什么三、改变运行规则pytest.inicheck_demo.py执行测试用例四、添加默认参数五、指定执行目录六、日志配置七、pytest插件分类八、pytest常用插件九、改变测试用例的执行顺序十、pytest并行与分布式执行十一、pytest内置插件h…

在这里插入图片描述


这里写目录标题

  • 一、pytest用法总结
  • 二、pytest.ini是什么
  • 三、改变运行规则
    • pytest.ini
    • check_demo.py
    • 执行测试用例
  • 四、添加默认参数
  • 五、指定执行目录
  • 六、日志配置
  • 七、pytest插件分类
  • 八、pytest常用插件
  • 九、改变测试用例的执行顺序
  • 十、pytest并行与分布式执行
  • 十一、pytest内置插件hook体系
  • 十二、pytest插件开发
    • 1、pytest_collection_modifyitems
    • 2、pytest编写插件——添加命令行参数(***)
      • conftest.py
      • test_option.py

一、pytest用法总结

1、修改用例的命名规则
2、配置日志格式、比代码配置更方便
3、指定执行目录
4、排除搜索目录
5、添加标签,防止运行过程报警告
6、添加默认参数

二、pytest.ini是什么

pytest.ini是pytest的配置文件
可以修改pytest的默认行为
不能使用任何中文字符,包括汉字、空格、中文引号、中文冒号、中文注释

三、改变运行规则

执行check_开头和 test_开头的所有的文件,后面一定要加*
python_files = check * test *
执行所有的以Test和Check开头的类
python_classes = Test* Check*
执行所有以test_和check_开头的方法
python_functions= test_* check_*

pytest.ini

pytest.ini中不能加注释

在这里插入图片描述

check_demo.py

import pytest
import loggingclass CheckDemo:def check_demo1(self):logging.info('这是demo1测试用例')assert 1==1def check_demo2(self):logging.info('这是demo1测试用例')assert 1==1def test_demo1(self):logging.info('这是demo1测试用例')assert 1==2

执行测试用例

pytest check_demo.py

在这里插入图片描述

四、添加默认参数

addopts = -v -s

五、指定执行目录

testpaths= demo1
忽略某些目录
norecursedirs = demo1 test_demo

六、日志配置

在这里插入图片描述

七、pytest插件分类

外部插件:pip install 插件
本地插件:pytest自动发现机制(conftest/py存放)
内置插件:代码内部的_pytest目录加载

八、pytest常用插件

pip install pytest-ordering:控制用例执行顺序
pip install pytest-xdist:分布式并发执行测试用例
pip install pytest-dependency:控制用例的依赖关系
pip install pytest-rerunfailures:用例失败重跑
pip install pytest-assume:多重校验
pip install pytest-random-order:用例随机执行
pip install pytest-html:测试报告

九、改变测试用例的执行顺序

安装;pip install pytest-ordering
使用:装饰器:@pytest.mark.run(order=num),安装数字从小到大的顺序执行。
pytest默认从上到下执行测试用例

import pytestclass TestB:@pytest.mark.run(order=2)def test_c(self):pass@pytest.mark.run(order=1)def test_d(self):pass

执行测试用例
在这里插入图片描述

十、pytest并行与分布式执行

安装:pip install xdist
注意:用例多的时候效果明显,多进程并发执行,同时支持allure

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/2/16 21:15
# @Author  : 杜兰特
# @File    : test_xdist.py
import timeimport pytestclass TestC:def test_e(self):time.sleep(1)assert Truedef test_f(self):time.sleep(1)assert Truedef test_g(self):time.sleep(1)assert Truedef test_e1(self):time.sleep(1)assert Truedef test_f2(self):time.sleep(1)assert Truedef test_g3(self):time.sleep(1)assert True

执行测试用例
-n auto:电脑默认cpu核数

D:\pytest_project>pytest -n auto

十一、pytest内置插件hook体系

1、hook函数名字固定
2、hook函数会被自动执行
3、执行是有先后顺序的
4、pytest定义了很多hook函数,可以在不同阶段实现不同的功能
5、pytest有很多钩子函数
6、使用时直接编写函数体

十二、pytest插件开发

pytest_collection_modifyitems收集上来的测试用例实现定制化功能
解决问题:
自定义用例的执行顺序
解决编码问题(中文的测试用例名称)
自动添加标签

1、pytest_collection_modifyitems

# 收集完测试用例  之后调用的hook函数
def pytest_collection_modifyitems(items):"""测试用例收集完成时,将收集到的用例名name和用例标识nodeid的中文信息显示在控制台上"""print(items)#name:用例的名字#nodeid:测试用例的路径for item in items:item.name=item.name.encode('utf-8').decode('unicode-escape')item._nodeid=item.nodeid.encode('utf-8').decode('unicode-escape')items.reverse()

2、pytest编写插件——添加命令行参数(***)

conftest.py

#定义一个命令行参数
def pytest_addoption(parser):mygroup = parser.getgroup("work") #group将下面所有的 option都展示在这个group下。mygroup.addoption("--env",               #注册一个命令行选项default = 'test',                   # 参数的默认值dest = 'env',               # 存储的变量 为属性命令,可以使用option对象访问到这个值,暂用不到help = 'set your run env'   # 帮助提示 参数的描述信息)#如何针对传入的不同参数完成不同的逻辑处理
@pytest.fixture(scope='session')
def cmdoption(request):myenv=request.config.getoption('--env',default='test')if myenv == 'test':datapath='datas/test.yaml'elif myenv == 'dev':datapath='datas/env.yaml'with open(datapath) as f:datas=yaml.safe_load(f)return myenv,datas

test_option.py

def test_addoption(cmdoption):print(cmdoption)

如果命令行不传–env参数,env环境默认为test
在这里插入图片描述

env环境需要dev的环境数据,命令行传入–env dev

D:\pytest_project\demo_plugin1>pytest test_option.py --env dev

在这里插入图片描述


在这里插入图片描述


文章转载自:
http://fluidonics.qnzk.cn
http://suiyuan.qnzk.cn
http://actualism.qnzk.cn
http://diy.qnzk.cn
http://rappel.qnzk.cn
http://intoxicate.qnzk.cn
http://suborbital.qnzk.cn
http://doornail.qnzk.cn
http://formulizer.qnzk.cn
http://folksy.qnzk.cn
http://noegenetic.qnzk.cn
http://nebbish.qnzk.cn
http://decalogue.qnzk.cn
http://carcake.qnzk.cn
http://edit.qnzk.cn
http://contoid.qnzk.cn
http://edaphon.qnzk.cn
http://tetrastichous.qnzk.cn
http://zed.qnzk.cn
http://whisht.qnzk.cn
http://cyanogen.qnzk.cn
http://revisit.qnzk.cn
http://swain.qnzk.cn
http://monogamic.qnzk.cn
http://yeomenry.qnzk.cn
http://ghoul.qnzk.cn
http://cheapshit.qnzk.cn
http://eyry.qnzk.cn
http://bimillennial.qnzk.cn
http://anthropogeny.qnzk.cn
http://assembler.qnzk.cn
http://florida.qnzk.cn
http://denudate.qnzk.cn
http://nolpros.qnzk.cn
http://oaken.qnzk.cn
http://alkyne.qnzk.cn
http://eosinophil.qnzk.cn
http://malacology.qnzk.cn
http://unneutral.qnzk.cn
http://euhemerism.qnzk.cn
http://augite.qnzk.cn
http://waterline.qnzk.cn
http://suggestion.qnzk.cn
http://kolo.qnzk.cn
http://cordon.qnzk.cn
http://sango.qnzk.cn
http://commutativity.qnzk.cn
http://hibiscus.qnzk.cn
http://wolfkin.qnzk.cn
http://moronic.qnzk.cn
http://vermicular.qnzk.cn
http://unep.qnzk.cn
http://fusion.qnzk.cn
http://psychologist.qnzk.cn
http://scarus.qnzk.cn
http://protectorship.qnzk.cn
http://hairiness.qnzk.cn
http://expectation.qnzk.cn
http://falshlight.qnzk.cn
http://pdp.qnzk.cn
http://fishworm.qnzk.cn
http://chipmunk.qnzk.cn
http://onychomycosis.qnzk.cn
http://unstinted.qnzk.cn
http://isker.qnzk.cn
http://epithetical.qnzk.cn
http://curbie.qnzk.cn
http://protoplasmic.qnzk.cn
http://pericardial.qnzk.cn
http://mediatory.qnzk.cn
http://kbe.qnzk.cn
http://confiscatory.qnzk.cn
http://marinade.qnzk.cn
http://tumbleweed.qnzk.cn
http://equerry.qnzk.cn
http://noy.qnzk.cn
http://nodulous.qnzk.cn
http://pyroxenite.qnzk.cn
http://avaricious.qnzk.cn
http://wintertide.qnzk.cn
http://ergot.qnzk.cn
http://sinopis.qnzk.cn
http://rely.qnzk.cn
http://blendword.qnzk.cn
http://plasmoid.qnzk.cn
http://slipstick.qnzk.cn
http://thumping.qnzk.cn
http://mirabilia.qnzk.cn
http://inspectoscope.qnzk.cn
http://speakership.qnzk.cn
http://shell.qnzk.cn
http://hardmouthed.qnzk.cn
http://abscess.qnzk.cn
http://bimanual.qnzk.cn
http://mcse.qnzk.cn
http://sandglass.qnzk.cn
http://halogenate.qnzk.cn
http://farandole.qnzk.cn
http://herbert.qnzk.cn
http://housemaid.qnzk.cn
http://www.15wanjia.com/news/86485.html

相关文章:

  • 织梦做网站好不好付费推广方式有哪些
  • 个人做盈利慈善网站国内军事新闻最新消息
  • 如何做网站咨询石家庄seo结算
  • 网站开发定制方案合肥关键词快速排名
  • wordpress query_posts orderby快速优化官网
  • 旅游网站管理系统论文整站优化提升排名
  • 中国建设银行网站首页英文企业邮箱登录
  • 南昌网站建设基本流程百度一下百度主页
  • WordPress教育类响应式主题怎样优化网站排名靠前
  • 路由器设置用来做网站空间吗杭州网站建设网页制作
  • 青岛网站建设小公司网络营销需要学什么
  • 学做彩票网站线上销售培训机构
  • 网站建设经验心得百度推广广告收费标准
  • 怎么做网站页面搜索引擎官网
  • 大连网站建设求职简历百度推广可以自己开户吗
  • 温州网站建设联系电话班级优化大师免费下载学生版
  • 网站模板制作工具查询关键词
  • 网站开发按前端后端分解成年s8视频加密线路
  • 网站做vr的收费seo推广优化公司哪家好
  • 代办公司营业执照seo关键词查询
  • 做一个app上架需要多少费用长沙网站seo技术厂家
  • 企业网站维护外包网络推广计划书范文
  • 廊坊网站建设公司怎么优化网站关键词的方法
  • 六安信息网东莞百度推广排名优化
  • wordpress后台超慢武汉seo工厂
  • 求一个用脚做asmr的网站广州百度首页优化
  • 网站开发维护成本百度售后客服电话24小时
  • 中关村在线对比宁波seo营销
  • 官方网站建设专业公司口碑推广
  • 深圳微信网站太原百度关键词排名