我们都知道,在做单元测试框架中有UnitTest和Pytest,前者是Python中自带无需安装,Pytest需要安装,今天我们来讲的就是Pytest,当然如果是做自动化,建议两个都要掌握一下,可以针对实际业务灵活使用

废话不多说,开干!

1、环境安装

pip insatll pytest

如果要解决安装满的问题,可以使用豆瓣源:

pip install -i https://pypi.douban.com/simple pytest

查看安装是否成功和安装版本:

pytest --version

2、基本使用

我们使用别人的框架,就得遵守别人的规则,所以pytest也有相应的规则:

1:用例文件:所有文件名为 test_ 开头 或者 _test 开头的文件会被识别为用例文件。

2:用例类,测试文件中每个Test开头的类就是一个测试用例类。并且不能带有 init 方法

3、测试用例:测试类中每个test开头的方法就是一条测试用例,测试文件中每个test开头的函数也是一条测试用例

通俗来说,就是不管是文件名,类名或者函数名命名必须是test的

不理解没问题,直接来实战

1、以函数形式编写用例

# 函数形式
def test_demo(): # 要求函数名以 test 开头
"""测试函数"""
print('我是函数形式的pytest,我可以是一条用例哦')

我们来运行一下:

用例成功通过

那我们是怎么运行的呢

右键运行或者右上角运行都可以,如果结果报错,检查一下pycham中默认测试选的是哪个

选择对应的pytest即可,我这里自动检测了pytest,所以无需设置

还可以怎么执行呢

以命令行的形式执行:

直接进入到当前项目下,输入pytest,就可以自动执行了

这里我们得再补充下:

在pytest后加 -v 或者 -s,分别有不同的含义

  • -v:显示测试的详细参数信息
  • -s:显示测试执行的输出信息

我们以其中一个示例:

除了函数形式编写,还有类的形式编写,下边我们以类的形式编写用例

2、以类形式编写用例

# 测试类形式
class TestDemo(object): # 正常定义类, 但是测试类名必须以 Test 开头
"""测试示例类""" def test_01(self): # 正常定义⽅法, 但是测试⽅法名必须以test开头
print('我是测试类下的方法1') def test_02(self):
print('我是测试类下的方法2')

这个遵循我们的规则第二条,测试类以Test开头

当然我们再次运行发现两条用例都已执行成功,现在我们都是自己执行的,难道pytest就没有一套运行方式吗?当然有的,pytest有一个main方法也是可以执行代码文件的

if __name__ == '__main__':
pytest.main(['-s', 'test01.py'])

这个我们简单分析一下,就是这是main主函数入口,调用了pytest的main方法,方法里参数放在一个列表里

其他的我们需要什么参数就往里填就可以了

到了这里,基本使用我们就讲完了,实际看完感觉是不是也就那样,我们总结下,本篇讲的pytest环境安装,pytest基本规则,pytest函数和类的使用,main函数运行方式

还有前置、后置、配置文件、参数化(数据驱动)、断言、重试机制、插件报告,不要着急慢慢来

playwright(十三) - PyTest基本使用的更多相关文章

  1. playwright结合pytest使用案例

    playwright简介 不愧是宇宙最强,它也是目前为止对ui自动化领域里最好的一个库,在selenium之上,还有对应的异步机制,其他见百度不便在此详叙. 本篇经典案例是对我司的veer产品做ui自 ...

  2. pytest十三:配置文件 pytest.ini

    pytest 配置文件可以改变 pytest 的运行方式,它是一个固定的文件 pytest.ini 文件,读取配置信息,按指定的方式去运行. ini 配置文件pytest 里面有些文件是非 test ...

  3. Pytest系列(十三)- 重复执行之pytest-repeat的使用

    写在前面 这个插件,可以帮助我们很好的解决自动化测试过程中的一些偶线性bug难以复现的问题,但前提是,当前自动化脚本是独立的,不依赖任何其他脚本.个人觉得还是失败重运行的一种体现,就和TestNG是一 ...

  4. playwright自动化项目搭建

    这是关于playwright系列介绍的最后一篇.搭建基于 playwright 的自动化项目. GitHub地址: https://github.com/defnngj/playwright-pro ...

  5. playwright录制脚本

    我喜欢Playwright! 这是微软开源的一款非常强大的自动化工具,再过几年,他很有可能取代Selenium在浏览器自动化的通知地位.使用过一段时间,我没有找到很好的中文资料可以参考,导致很多问题无 ...

  6. pytest基本使用指南

    注:关于pytest的基础要点个人已经总结好了, 一. 启动: 在主函数main下启动:pytest.main(['-q','test_demo.py']) 在命令行启动:pytest ./test_ ...

  7. CRL快速开发框架系列教程十三(嵌套查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. 我的MYSQL学习心得(十三) 权限管理

    我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  9. WPF入门教程系列二十三——DataGrid示例(三)

    DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...

  10. flask-sqlalchemy、pytest 的单元测试和事务自动回滚

    flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...

随机推荐

  1. token验证

    token验证 什么是token?我相信很多开发者都或多或少听过基于 token 的用户鉴权和基于 session 的用户鉴权,而今天说的 token 验证就是第一种了.token 的意思是" ...

  2. Mysql查询执行报错Packet for query is too large (6,831,159 > 4,194,304)

    根据意思可以看出 mysql执行的报文过大.需要我们设置允许的最大报文max_allowed_packet: org.springframework.dao.TransientDataAccessRe ...

  3. Godot报错 Node not found: "SubViewport"[一问随笔]

    问题: 使用TextureRect显示SubViewport的内容,结果发生了如下报错 E 0:00:01:0007 get_node: Node not found: "SubViewpo ...

  4. [人脸活体检测] 论文:Searching Central Difference Convolutional Networks for Face Anti-Spoofing

    文章目录 Searching Central Difference Convolutional Networks for Face Anti-Spoofing 1 导读 2 简介 3 方法 中心差分卷 ...

  5. YOLO4论文中文版

    文章目录 YOLO4论文中文版 摘要 1.介绍 2.相关工作 2.1.目标检测模型 2.2.Bag of freebies 2.3.Bag of specials 3.方法 3.1.架构选择 3.2. ...

  6. 分享Zeal的全套离线文档

    鉴于Zeal自身的下载速度... 为了方便大家,现在把我自己下载好的Zeal离线文档全部分享出来 百度网盘链接:https://pan.baidu.com/s/19WeEWij3evnuMWhzbHu ...

  7. JS中内存泄漏的几种情况

    JavaScript 中的内存泄漏是指程序中使用的内存不再被需要却没有被释放,最终导致浏览器或者 Node.js 进程使用的内存越来越大,直到程序崩溃或者系统运行缓慢. 在 JavaScript 中, ...

  8. distinct()去重

    distinct()去重 Student.objects.all().distinct()

  9. PictureBox 从数据库加载图片照片

    Private Sub PAPHOTO_SEL() Try Dim objCon As SqlConnection Dim objCmd As SqlCommand '打开数据库 objCon = N ...

  10. (偶尔更新)【Linux】Linux常见不常用命令收集

    本文时间 2023-05-20 作者:sugerqube漆瓷 cd,vi,clear这些属于常见常用命令本文不再赘述. 安装命令 yum install vim举例安装vim rpm -ivh a.r ...