IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest学习和使用 ?2 初步使用和用例运行 -> 正文阅读

[开发测试]pytest学习和使用 ?2 初步使用和用例运行

1 测试脚本

  • pytest_study文件夹下创建一个test_mm.py
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/8/27 16:51
# 文件名称:test_mm.py
# 作用:xxx
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

def m_sum(x):
    return x * (x+1)

def test_m_sum():
    assert m_sum(3) == 11
  • pytest_study文件夹下打开cmd直接输入pytest运行:
(venv) F:\pytest_study>pytest
========================================================================= test session starts ==========================================================================
platform win32 -- Python 3.7.0, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: F:\pytest_study
plugins: allure-pytest-2.8.12, cov-2.8.1, forked-1.1.3, html-2.0.1, metadata-1.8.0, ordering-0.6, xdist-1.31.0
collected 1 item

test_mm.py F                                                                                                                                                      [100%]

=============================================================================== FAILURES ===============================================================================
______________________________________________________________________________ test_m_sum ______________________________________________________________________________

    def test_m_sum():
>       assert m_sum(3) == 11
E       assert 12 == 11
E        +  where 12 = m_sum(3)

test_mm.py:13: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_mm.py::test_m_sum - assert 12 == 11
========================================================================== 1 failed in 0.07s ===========================================================================
  • 发现执行失败了,是因为12不等于11,assert是用来进行断言的。

2 脚本分析

2.1 断言使用assert

  • 从上边脚本看到断言的话使用assert即可,根据官网的说法是pytest断言基本都是用的assert

2.2 使用pytest运行用例规则

  • 文件名规则:
test_*.py和*_test.py命名的函数
  • 函数名规则:
以test_开头的函数
  • 类的规则
test_开头的方法,不能有__init__ 方法
  • python包的规则
同python一样,包需要有__init__.py文件
  • -q-quiet参数进行静默运行函数(说白了就是结果输出简单化)

3 练习下用例运行规则

  • 先在pytest_study目录下再新建一个test_case包;
    在这里插入图片描述

  • 然后把之前写的第一个用例test_mm.py移动到这个目录下:
    在这里插入图片描述

  • 在pytest_study下执行pytest,发现是可以执行的,说明是执行了test_case下的test_mm.py

(venv) F:\pytest_study>pytest
========================================================================= test session starts ==========================================================================
platform win32 -- Python 3.7.0, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: F:\pytest_study
plugins: allure-pytest-2.8.12, cov-2.8.1, forked-1.1.3, html-2.0.1, metadata-1.8.0, ordering-0.6, xdist-1.31.0
collected 1 item

test_case\test_mm.py F                                                                                                                                            [100%]

=============================================================================== FAILURES ===============================================================================
______________________________________________________________________________ test_m_sum ______________________________________________________________________________

    def test_m_sum():
>       assert m_sum(3) == 11
E       assert 12 == 11
E        +  where 12 = m_sum(3)

test_case\test_mm.py:13: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_case/test_mm.py::test_m_sum - assert 12 == 11
========================================================================== 1 failed in 0.13s ===========================================================================

(venv) F:\pytest_study>
  • 使用-q参数来执行下,一下子少了很多输出:
(venv) F:\pytest_study>pytest -q
F                                                                                                                                                                 [100%]
=============================================================================== FAILURES ===============================================================================
______________________________________________________________________________ test_m_sum ______________________________________________________________________________

    def test_m_sum():
>       assert m_sum(3) == 11
E       assert 12 == 11
E        +  where 12 = m_sum(3)

test_case\test_mm.py:13: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_case/test_mm.py::test_m_sum - assert 12 == 11
1 failed in 0.05s

(venv) F:\pytest_study>
  • 再在test_case下新建一个名为test_a的包,并在包里复制一个test_mm1.py
    在这里插入图片描述
  • 从执行结果看是ok的,那么以上都证明了文件名、包名都需要以test开头才能被执行;
(venv) F:\pytest_study>pytest -q
FF                                                                                                                                                                [100%]
=============================================================================== FAILURES ===============================================================================
______________________________________________________________________________ test_m_sum ______________________________________________________________________________

    def test_m_sum():
>       assert m_sum(3) == 11
E       assert 12 == 11
E        +  where 12 = m_sum(3)

test_case\test_mm.py:13: AssertionError
______________________________________________________________________________ test_m_sum ______________________________________________________________________________

    def test_m_sum():
>       assert m_sum(3) == 11
E       assert 12 == 11
E        +  where 12 = m_sum(3)

test_case\test_a\test_mm1.py:13: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_case/test_mm.py::test_m_sum - assert 12 == 11
FAILED test_case/test_a/test_mm1.py::test_m_sum - assert 12 == 11
2 failed in 0.20s

(venv) F:\pytest_study>

  • 我们修改下test_mm1.py增加一个类,如下:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/8/27 16:51
# 文件名称:test_mm.py
# 作用:xxx
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest


class TestClass:

    def test_you(self):
        y = "you"
        assert "y" in y

    def test_hai(self):
        h = "hai"
        assert "gg" not in h


if __name__ == '__main__':
    pytest.main()
  • 直接在pytest_study下执行pytest -q,如下,说明类也执行到了:
(venv) F:\pytest_study>pytest -q
...                                          [100%]
3 passed in 0.15s

『全栈测试技术,分享,共勉,共进,提升』


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:20:58  更:2021-09-05 11:21:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:33:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码