我们都知道,在做单元测试框架中有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. LeeCode 二叉树问题(二)

    二叉树的构建 LeeCode 106: 从中序遍历与后续遍历序列构造二叉树 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, posto ...

  2. day107:MoFang:Python操作MongoDB数据库:PyMongo

    目录 PyMongo 1.PyMongo安装 2.数据库连接 3.数据库管理 4.集合管理 5.文档管理 PyMongo 1.PyMongo安装 pip install pymongo 2.数据库连接 ...

  3. C# 根据前台传入实体名称,动态查询数据

    前言: 项目中时不时遇到查字典表等数据,只需要返回数据,不需要写其他业务,每个字典表可能都需要写一个接口给前端调用,比较麻烦,所以采用下面这种方式,前端只需传入实体名称即可,例如:SysUser 1. ...

  4. scikit-learn 中 Boston Housing 数据集问题解决方案

    scikit-learn 中 Boston Housing 数据集问题解决方案 在部分旧教程或教材中是 sklearn,现在[2023]已经变更为 scikit-learn 作用:开源机器学习库,支持 ...

  5. 32-webpack详细配置-entry

    const HtmlWebpackPlugin = require('html-webpack-plugin') const {resolve} = require('path') /** * ent ...

  6. 为HttpClient开启HTTP/2

    .Net Core在调用其他服务时,调用通常使用HttpClient,而HttpClient默认使用HTTP/1.1 . 配置 HttpClient 以使用 HTTP/2 h2 连接 自 .NET C ...

  7. C# 几种获取电脑内存、CPU信息的方案

    计数器.WMI 获取设备的内存信息,如系统可用运行内存: 1 public static async Task<double> GetMemoryAvailableAsync(FileSi ...

  8. [[SCOI2008]城堡] 解题报告

    [SCOI2008]城堡 最大值最小,显然二分答案,但考虑二分后如何 check. \(n\) 个点 \(n\) 条边,显然这是一个基环树森林.对于基环树,常用的套路是拆环为链,枚举删去哪条边.但这题 ...

  9. Hugging News #0428: HuggingChat 来啦

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  10. 百度飞桨(PaddlePaddle)- 张量(Tensor)

    飞桨 使用张量(Tensor) 来表示神经网络中传递的数据,Tensor 可以理解为多维数组,类似于 Numpy 数组(ndarray) 的概念.与 Numpy 数组相比,Tensor 除了支持运行在 ...