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

一、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()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

酷得单片机方案 2.4G儿童遥控漂移车

电子方案开发定制&#xff0c;我们是专业的 东莞酷得智能单片机方案之2.4G遥控玩具童车具有以下比较有特色的特点&#xff1a; 1、内置充电电池&#xff1a;这款小车配备了可充电的电池&#xff0c;无需频繁更换电池&#xff0c;既环保又方便。充电方式可能为USB充电或者专用…

LATTICE进阶篇DDR2--(0)获取ddr2 IP核

前言 想要仿真lattice的DDR2由来已久&#xff0c;但苦于对其了解甚少&#xff0c;在查阅过很多资料后&#xff0c;终于对这个IP核的仿真有了一些了解。 现做一些总结&#xff0c;以备不时之需&#xff0c;也让有需要的朋友&#xff0c;少走一些弯路。 环境&#xff1a;win10…

算法学习——LeetCode力扣动态规划篇5

算法学习——LeetCode力扣动态规划篇5 198. 打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统…

通知中心架构:打造高效沟通平台,提升信息传递效率

随着信息技术的快速发展&#xff0c;通知中心架构作为一种关键的沟通工具&#xff0c;正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构&#xff1f; 通知中心架构是指通过集中管…

信息学奥赛一本通T1268-完全背包问题

solution1 二维形式 #include<iostream> #include<algorithm> using namespace std; const int maxn 35, maxv 210; int w[maxn], c[maxn], dp[maxn][maxv]; int main(){int n, m;scanf("%d%d", &m, &n);for(int i 1; i < n; i){scanf(&…

电脑win10系统更新后很卡怎么办,win10电脑更新完系统特别卡

更新或者升级win10系统后发现电脑变卡了,这是什么原因呢?如果电脑硬件不是特别差,那么可以按照下面的方法来缓解卡顿,因为可能是内存不足所引起的,试试清理更新缓存和禁用开机启动项。但如果是硬件较低或者太老旧,并且本身的内存就很小的话,那么建议你还是升级硬件吧。下…

.NET 开发支持技术路线 .Net 7 将停止支持

.NET 开发技术路线图 微软方面强调&#xff0c;使用 .NET 7 的应用程序将在支持结束后继续运行&#xff0c;但用户可能无法获得 .NET 7 应用程序的技术支持。他们不会继续为 .NET 7 发布新的安全更新&#xff0c;用户可能会面临安全漏洞问题。 开发人员必须使用 .NET 8 SDK 构建…

Windows提权!!!

之前讲过一下提权&#xff0c;但是感觉有点不成体系&#xff0c;所以我们就成体系的来讲一下这个操作系统的提权 目录 Windows的提权 1.Widnows的内核溢出提权 1.MSF自带的提权模块&#xff08;Win11都能提上来&#xff0c;有点牛逼&#xff09; 2.CS的插件提权 3.补丁对比…

毕设论文目录设置

添加目录 选择一种格式的自动目录 更新目录 发现该目录中只有1、2章&#xff0c;3、4章 然后再点击更新目录 对应的&#xff0c;小标题添加二级目录

基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现

基于JavaSpringMVCMybatisJquery高校毕业设计管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…

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

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

医院陪诊管理系统(源码+文档)

TOC) 文件包含内容 1、搭建视频 2、流程图 3、开题报告 4、数据库 5、参考文献 6、服务器接口文件 7、接口文档 8、任务书 9、功能图 10、环境搭建软件 11、十六周指导记录 12、答辩ppt模板 13、技术详解 14、前端后台管理&#xff08;管理端程序&#xff09; 15、项目截图 1…

06-JavaScript DOM对象

1. 从ECMA到W3C 我们知道&#xff0c;ECMA定义的是js的变量语法等基础的标准规范&#xff0c;而W3C是针对浏览器API提出的规范&#xff0c; 所以我们要工作不可能只了解语法&#xff0c;我们的代码要在浏览器上跑起来就需要我们去了解W3C的标准。 那么W3C规定了哪一系列的的A…

深入PostgreSQL中的pg_global表空间

pg_global表空间的位置 在PG当中&#xff0c;一个实例(cluster)初始化完以后&#xff0c;你会看到有下边两个与表空间相关的目录生成&#xff1a; $PGDATA/base $PGDATA/global 我们再用元命令\db以及相关视图看看相应的表空间信息&#xff1a; postgres# \db …

28. UE5 RPG同步面板属性(四)

在前面几篇中&#xff0c;我们实现了以下步骤&#xff1a; 首先我们需要通过c去实现创建GameplayTag&#xff0c;这样可以在c和UE里同时获取到Tag创建一个DataAsset类&#xff0c;用于设置tag对应的属性和显示内容创建AttributeMenuWidgetController实现对应逻辑 上面几步在前…

MySQL数据库下,使页面传入的数据与保存的数据编码一致

一、查询当前MySQL数据库的编码 &#xff08;1&#xff09;登录MySQL数据库&#xff08;Windows系统&#xff09;&#xff1a;winR打开命令终端&#xff0c;cd到MySQL的bin目录&#xff0c;输入mysql -u root -p&#xff0c;回车后输入登录密码 &#xff08;2&#xff09;查看…

【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)

目录 前言 C关键字 命名空间 1.命名空间的定义 A.标准命名空间定义 B.命名空间允许嵌套定义 C.同名命名空间的合并 2.命名空间的使用 加命名空间名称及作用限定符 使用using将命名空间中某个成员引入 使用using namespace命名空间名称引入 C的输入和输出 缺省参数…

C++类基础5——拷贝构造函数,拷贝赋值运算符(复制构造函数,复制赋值运算符)

拷贝控制操作 当定义一个类时&#xff0c;我们显式地或隐式地指定在此类望的对象拷贝&#xff0c;移动、赋值和销毁时做什么。 一个类通定义五种特殊的成员函数来控制这些操作&#xff0c;包括&#xff1a;拷贝构造函数(copy consinuctor)、拷贝赋值运算符(copy-assignment op…

如何修复开机但不显示任何内容的计算机?这里提供详细步骤

前言​ 计算机“无法开机”的最常见方式是PC实际开机但在显示器上不显示任何内容。你看到电脑机箱上的灯,可能看到里面的风扇在转,甚至可能听到声音,但屏幕上什么也没有显示,请按照我们提供的顺序尝试以下常见修复方法。 测试显示器 在对计算机的其余部分进行更复杂和耗时…

Mac 下安装maven教程

note&#xff1a;网上已经有很多该类型教程了&#xff0c;这边自身保留一份&#xff0c;方便后面使用&#xff1b; 一、安装地址&#xff1a;官网 二、安装步骤 $ tar -xvf apache-maven-3.3.9-bin.tar.gz //mac支持手动点击解压 $ sudo mv -f apache-maven-3.3.9 /usr…