pytest--python的一种测试框架--pytest常用断言类型

news2024/11/23 8:38:20

一、pytest常用断言类型

等于:==
不等于:!=
大于:>
小于:<
属于:in
不属于:not in
大于等于:>=
小于等于:<=
是:is
不是:is not

def test_two():
    assert 1==1
    assert 1 != 2
    assert 1 < 2
    assert 1 > 2
    assert 1 >= 1
    assert 1 <= 1

    assert 'a' in 'abc'
    assert 'a' not in 'bcd'
    assert True is True
    assert False is not True

在这里插入图片描述

二、requests+pytest

import requests
def test_mobile():
    r = requests.get(url="https://api.binstd.com/shouji/query", params={
        "shouji": "13456755448",
        "appkey": "e1d1e3c8fb254b33"
    })
    print(r.status_code)
    assert r.status_code==200
    result=r.json()
    assert result['status']==0
    assert result['msg'] == "ok"
    assert result['result']['shouji'] == "13456755448"
    assert result['result']['province'] == "浙江"
    assert result['result']['city'] == "杭州"
    assert result['result']['company'] =="中国移动"
    assert result['result']['cardtype'] is None
    assert result['result']['creacode'] == "0571"

在这里插入图片描述
这个操作,针对之前的requests模块对他进行一个优化对其自身用例进行改进初步实现我们用pytest进行接口测试的测试用例

三、pytest配置项

pytest.ini(固定写法,你如果写错是不生效的),ini在很多框架里面都是作为配置项去使用的。在写路径的时候是可以指定到某个具体的文件的

[pytest]
testpaths=./testcase

把要执行的目录直接配置到此处,通过终端输入运行pytest命令即可
在这里插入图片描述
在这里插入图片描述

四、pytest的setup/teardown(前置步骤和后置步骤)

在我们做自动化里面,前置和后置基本上是一个功能,比如我们在做UI自动化,前置需要打开浏览器,后置需要关闭浏览器。在做接口测试自动化,比如我们前置需要去登陆或者插入一些测试数据,做一些测试用例执行前的一个工作,在做完测试用例之后我们需要在后置步骤里面去做一些数据的清理,防止产生一些垃圾数据。

setup/teardown其实分为四个等级分别是:

**模块级–setup_module/teardown_module–开始于模块始末,生效一次;
函数级–setup_function/teardown_function–对每条函数用例生效(不在类中);
类级–setup_class/teardown_class–只在类中前后运行一次(在类中);
方法级–setup_method/teardown_method–开始于方法始末(在类中)。
**

如何将一个.py文件中两条绿色三角符号的测试用例都给运行出来?

答:

def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

def test_two():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()#会把我们当前用例中的其他测试用例符合条件的都执行

在这里插入图片描述

4.1模块级示例:可以看到模块级setup_module/teardown_module开始于模块始末,仅执行一次

import requests

def setup_module():
    print("准备测试数据")
def teardown_module():
    print("清理测试数据")

def test_mobile1():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile2():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile3():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile4():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.2函数级示例:可以看到每一条函数执行之前和执行之后各执行一次,setup_function/teardown_function,函数执行多少次它执行多少次。这是不在类class中的

import requests

def setup_function():
    print("准备测试数据")
def teardown_function():
    print("清理测试数据")

def test_mobile1():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile2():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile3():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile4():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.3类级示例:可以看到在类中前后运行一次

import requests

class TestMobile:
    def setup_class(self):
        print("准备测试数据")

    def teardown_class(self):
        print("清理测试数据")

    def test_mobile1(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile2(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile3(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile4(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等



if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.4方法级示例:方法在类中,类中的方法级,可以看到在类中的每个函数都执行一次

import requests

class TestMobile:
    def setup_method(self):
        print("准备测试数据")

    def teardown_method(self):
        print("清理测试数据")

    def test_mobile1(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile2(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile3(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile4(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等



if __name__=='__main__':
    pytest.main()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1558299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自用Proteus(8.15)仿真下载安装过程(附详细安装过程图)

文章目录 一、前言二、软件下载三、安装过程1.软件下载完成&#xff0c;进行解压缩2.右键点击Setup&#xff0c;以管理员身份运行3.点击Next&#xff0c;进行下一步4.勾选I accept...&#xff0c;点击Next5.选择使用本地安装的许可秘钥6.点击Next&#xff0c;进行下一步7.无需勾…

CSS使用clip-path实现元素动画

前言&#xff1a; 在日常开发当中&#xff0c;如果想要开发多边形&#xff0c;一般都需要多个盒子或者伪元素的帮助&#xff0c;有没有一直办法能只使用一个盒子实现呢&#xff1f; 有的&#xff1a;css裁剪 目录 前言&#xff1a; clip-path到底是什么&#xff1f; clip-pa…

读所罗门的密码笔记06_共生思想(上)

1. 共生思想 1.1. 1997年5月11日&#xff0c;IBM公司的“深蓝”计算机在与国际象棋世界冠军加里卡斯帕罗夫的第二次对弈时击败了他 1.1.1. 这台超级计算机以3.5∶2.5的战绩胜出&#xff0c;登上了世界各地的新闻头条 1.2. Alpha Zero 1.2.…

赋值语句还能当判断条件?涨芝士了!

赋值和条件看似是C语言中毫不相关的两个概念&#xff0c;虽然实际过程中我猜测不会有太多这种不太符合常理的情况出现&#xff0c;但是现在在学习的过程中&#xff0c;为了出题而出题总是会整出一些花活出来.....这很难不让人联想起高中时一些大佬为了彰显自己的数学天赋而自己…

代码学习第32天---动态规划

随想录日记part32 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.30 主要内容&#xff1a;今天开始要学习动态规划的相关知识了&#xff0c;今天的内容主要涉及两个方面&#xff1a; 不同路径 &#xff1b; 不同路径 II。 62.不同路径 63. 不同路径 II 动态…

Linux学习之软硬链接及动静态库

前言&#xff1a;在之前的文章http://t.csdnimg.cn/Lru5Thttp://t.csdnimg.cn/Lru5T 我们已经对Linux 系统里面的文件具有一定的理解了&#xff0c;现在我们将继续学习Linux里面的软硬连接和动静态库&#xff0c;这些是Linux里面的一些重要内容。 目录 一&#xff0c;文件管…

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵 目录 前言 一、Givens旋转简介 二、Givens旋转解释 三、Givens旋转进行QR分解 四、Givens旋转进行QR分解数值计算例子 五、求逆矩阵 六、MATLAB仿真 七、参考资料 总结 前言 在进行QR分解时&#xff0c;HouseHolder变换…

【opencv】教程代码 —features2D(5)旋转相机的基本全景拼接

基本全景拼接 panorama_stitching_rotating_camera.cpp 将第二张图像进行透视变换后与第一张图像拼接 #include <iostream> // 包含了一些用于输入输出的函数 #include <opencv2/core.hpp> // 包含了OpenCV核心库的一些常用类和函数 #include <opencv2/imgpro…

[leetcode] 46. 全排列

文章目录 题目描述解题方法dfsjava代码复杂度分析 相似题目 题目描述 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3]…

实验三智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 请编写下方商品列表页面&#xff0c;展示商品名称和价格&#xff1b; 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Index.WXML <view class"shop" wx:for"{{10}}"> <vie…

何從Microsoft下載Windows 10 最新版本的ISO

許多新手用戶不知道如何從Microsoft下載最新版本的Windows 10 ISO(32 位或 64 位)。在本指南中,我們將向您展示如何直接從Microsoft下載最新版本的Windows 10 ISO。請注意收藏以備不時之需哦。 您可能知道,除了幾個次要更新外,微軟每年都會向 Windows 10 發布兩個主要更新…

阿里云服务器ECS u1实例ecs.u1-c1m2.large性能测评

阿里云服务器u1是通用算力型云服务器&#xff0c;CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器&#xff0c;ECS通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xf…

Yarn的安装和使用(2):使用及问题解决

Yarn是JavaScript的依赖管理工具&#xff0c;它与npm类似&#xff0c;但提供了一些额外的性能优化和一致性保证。 Yarn的使用&#xff1a; 初始化项目&#xff1a; yarn init 此命令会引导您创建一个新的package.json文件&#xff0c;用于记录项目的元信息和依赖。 添加依赖&…

如何恢复已删除的 Office 文件

丢失了重要文件并需要将其找回&#xff1f;这些提示将帮助您立即恢复 Office 文档。 没有什么比无法访问您已经处理了几个小时的文档更令人沮丧的了。无论文件是否已损坏、删除或以其他方式丢失&#xff0c;都会感觉浪费了巨大的时间和精力。 幸运的是&#xff0c;使用 Micro…

Apache Hive的基本使用语法(一)

一、数据库操作 创建数据库 create database if not exists myhive;查看数据库 use myhive; desc database myhive;创建数据库并指定hdfs存储 create database myhive2 location /myhive2;删除空数据库&#xff08;如果有表会报错&#xff09; drop database myhive;…

ubuntu之搭建samba文件服务器

1. 在服务器端安装samba程序 sudo apt-get install samba sudo apt-get install smbclient 2.配置samba服务 sudo gedit /etc/samba/smb.conf 在文件末尾追加入以下配置 [develop_share] valid users ancy path /home/ancy public yes writable y…

Python文件操作命令

文件操作 我知道你最近很累&#xff0c;是那种看不见的、身体上和精神上的疲惫感&#xff0c;但是请你一定要坚持下去。就算无人问津也好&#xff0c;技不如人也好&#xff0c;千万别让烦躁和焦虑毁了你的热情和定力。别贪心&#xff0c;我们不可能什么都有&#xff0c;也别灰心…

亚信安全荣获2023年度5G创新应用评优活动两项大奖

近日&#xff0c;“关于2023 年度5G 创新应用评优活动评选结果”正式公布&#xff0c;亚信安全凭借在5G安全领域的深厚积累和创新实践&#xff0c;成功荣获“5G技术创新的优秀代表”和“5G应用创新的杰出实践”两项大奖。 面向异构安全能力的5G安全自动化响应系统 作为5G技术创…

【C语言】结构体详解(一)

目录 1、什么是结构体? 2、结构体成分 3、结构体变量的定义与初始化 3.1、结构体变量的三种定义方式 3.2、结构体变量的初始化 4、结构体成员的访问&#xff08;两种方式&#xff09; 4.1、直接访问 4.2、间接访问 5、结构的特殊声明 5.1、不完全声明&#xff08;匿…

白色微立体的智能界面,就喜欢这种简洁白净。

本次发一些微立体风格的智能家居界面&#xff0c;风格为微立体&#xff0c;也叫轻拟物风格&#xff0c;或者新拟态风格。