我们都知道,在做单元测试框架中有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. Nvidia GPU虚拟化

    1 背景 随着Nvidia GPU在渲染.编解码和计算领域发挥着越来越重要的作用,各大软件厂商对于Nvidia GPU的研究也越来越深入,尽管Nvidia倾向于生态闭源,但受制于极大的硬件成本压力,提 ...

  2. MySQL(九)InnoDB行格式

    InnoDB行格式 查看默认行格式: select @@innodb_default_row_format; 查看数据库表使用的行格式 mysql> use atguigudb; Reading ...

  3. Docker入门实践笔记-基本使用

    容器是一个系统中被隔离的特殊环境,进程可以在其中不受干扰地运行,使用Docker来实现容器化 容器化 运行容器时,要先拉取一个镜像(image),再通过这个镜像来启动容器: $ sudo docker ...

  4. c/c++零基础坐牢第一天

    c/c++从入门到入土(1) 开始时间2023-04-12 22:37:21 结束时间2023-04-13 00:02:26 前言:恭喜大家打开信息时代的大门,每个时代都有代表性的炫酷技能:原始时代的 ...

  5. 云原生2.0网关API标准发展趋势

    摘要:Gateway API希望取代Ingress API. 本文分享自华为云社区<云原生2.0网关API标准发展趋势>,作者:华为云云原生团队 . 云原生网关API标准背景及发展现状 G ...

  6. VUE3企业级项目基础框架搭建流程(3)

    VUE-Router npm install vue-router@4 安装完成后,在项目目录里新建一个router文件,我这里的用的是typeScript,所以建立的是router.ts, 该文件是 ...

  7. java-io FileInputStream文件拷贝

    1.编写代码 main方法: public static void main(String[] args) throws IOException { String pathFileUrl =" ...

  8. Vue3实现组件级基类的几种方法

    Vue3的组件有三种代码组织方式 纯Option API (不含setup) option API + setup 纯 setup (即composition API) 对于这三种形式,设置基类的方法 ...

  9. 自创简易CSS Tab 选项卡

    前段时间我注册了 w3c.run域名,打算做一个W3C相关技术在线试验工具.没错,就是在线编写html.css.js代码然后在线运行,查看效果. 在设计首页时,我打算首页提供三个代码编辑器,介于界面大 ...

  10. rust语言写的贪吃蛇游戏

    首先新建工程,然后用vscode打开,命令如下: cargo new snake --bin 文件结构如下: Cargo.Toml文件内容如下: [package] name = "snak ...