Pytest(复习)

ops/2024/12/23 7:54:13/

Pytest

pytest_2">pytest插件

1.pytest         			pytest框架
2.pytest-html				生成html
3.pytest-xdist				多线程插件
4.pytest-ordering			控制测试用例的执行顺序
5.pytest-rerunfailures		失败重跑
6.pytest-allure				生成美观的测试报告将命令放入requirements.txt文件中
在执行pip install -r requirements.txt一键安装所有插件 

参数详解:

-s: 表示输出调试信息
-v: 显示更详细的信息
-vs: 这两个参数一起用
-n: 支持多线程或者分布式运行测试用例
--reruns: 失败用例:重跑
-x :表示只要一个用例报错,那么测试停止
--maxfail=2 出现两个用例失败就停止
-k :根据测试用例的部分字符串指定测试用例
--html :生成html的测试报告

Pyttest实现前后置的处理,常用三种:

一,setup_method/teardown_method,setup_class/teardown_class

class TestMashang:def setup_class(self):print("\n 创建数据库链接")def setup_method(self):print("\n打开浏览器,加载页面")def test_01_baili(self):print("测试百里")def test_02_baili(self):print('我是帅哥')def teardown_method(self):print("\n关闭浏览器")def teardown_class(self):print("\n 创建数据库链接")

二, 使用@pytest.fixture()装饰器来实现部分用例的前后置
1.scope:表示标记的方法的作用域
2.params:参数化
3.autouse=True:自动执行,默认False
4.ids:当使用params参数时,给每一个值设置变量名
5. name:给表示的是被@pytest.fixture标记的方法去一个别名

1.scpe示例

import pytest@pytest.fixture(scope='function')
def my_fixture():print("这是一个fixture前置方法")yieldprint("这是一个fixture后置方法")class TestMashang:def test_01_baili(self):print("测试百里")def test_02_baili(self,my_fixture):print('我是帅哥')

2.params示例

import pytest@pytest.fixture(scope='function',params=['成龙','甄子丹','蔡依林'])
def my_fixture(request):return request.paramclass TestMashang:def test_01_baili(self):print("测试百里")def test_02_baili(self,my_fixture):print('我是帅哥')print('----------'+str(my_fixture))

pytestfixture_102">三.通过conftest.py和@pytest.fixture()结合使用实现全局的前置应用(比如项目的全局登录,模块的全局处理)

1.conftest.py文件是单独存放在一个夹具配置文件,名称不能更改
2.用处可以在不同的py文件中使用一个fixture函数
3.原则上需要和运行的用例放在同一层,并且不需要任何的import导入的操作

断言

import locust

class MyUser(locust.HttpUser):
wait_time = locust.between(1,2)

@locust.task
def test_api(self):resp = self.client.get('http://127.0.0.1:5000/auth/login')assert resp.status_code == 200

http://www.ppmy.cn/ops/108915.html

相关文章

我的可视化表达引擎真高可用了

原来有这么多时间 六月的那么一天,天气比以往时候都更凉爽,媳妇边收拾桌子,边漫不经心的对我说:你最近好像都没怎么阅读了。 正刷着新闻我,如同被一记响亮的晴空霹雳击中一般,不知所措。是了,最…

原型模式prototype

此篇为学习笔记,原文链接 https://refactoringguru.cn/design-patterns/prototype 能够复制已有对象, 而又无需使代码依赖它们所属的类 所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对…

使用 JAXB 将内嵌的JAVA对象转换为 xml文件

使用 JAXB 将内嵌的JAVA对象转换为 xml文件 1. 需求2. 实现(1)FileDesc类(2)MetaFileXml类(3)生成对应的xml文件 1. 需求 获取一个目录下所有文件的元数据信息(文件名、大小、后缀等&#xff0…

A表和B表公共元素产生链表C

设A和B是两个单链表(带头节点),其中元素递增有序。设计一个算法从A到B的公共元素产的C表(交集),要求不破坏A,B的节点。 思想:依次比较A,B表中的元素,相同时&…

《Zookeeper 的监听机制及原理解析》

一、引言 在分布式系统中,协调和管理各个节点的状态是一项至关重要的任务。ZooKeeper 作为一个开源的分布式协调服务,被广泛应用于众多分布式系统中,如 Hadoop、HBase、Kafka 等。其中,ZooKeeper 的监听机制是其实现分布式协调的关…

交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输

交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输。交换技术的核心目的是在不同的设备之间高效地传输数据,实现信息的互联互通。 一、交换技术的定义 交换…

初识爬虫2

requests学习(未更新完): 小技巧,如果你用的也是pycharm,对于控制台输出页面因为数据很长一行,不方便进行查看, 可以让它自动换行: 1.requests文档阅读学习链接:快速上…

Java项目: 基于SpringBoot+mybatis+maven实现的IT技术交流和分享平台(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven实现的IT技术交流和分享平台 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美…