Python03-pytest框架

2023-11-19

Python03-pytest测试框架

pytest简介

支持参数化可以细分控制测试用例、支持简单的单元测试和复杂的功能测试、还支持selenium/appium等自动化测试、接口自动化测试

支持第三方插件,可以自定义扩展、pytesthtml(
生成测试报告)、pytest-rerunfailures(失败case重复执行)

测试用例的skip和xfail处理

pytest脚本文件的文件名要带test名称,否则不会识别为测试用例也不会被pytest进行执行

基本展示

'''
1、定义reverse函数、源代码
2、定义了两个test_reverse函数
3、在该目录下打开命令行,pytest xxx.py 运行指定的py文件
4、直接运行pytest而不添加脚本名称,会吧所有带test的名字的文件执行一遍,
5、只有带test的文件才会被收集test_xxx()的函数或者方法作为测试用例执行
6、断言使用assert,是python自带的断言方式,不属于pytest的
7、当测试用例有多个验证点,其中某一个验证点一旦不通过,后面的验证点都不会再执行.
8、pytest测试验证点是按顺序执行的,包括顺序执行测试函数顺序,所以重要的函数要放在前面先进行执行,重要的断言也要写在前面
'''
def reverse(str):
    return str[::-1] #倒序 输出

s = 'python'
s = [1,2,3,4]

def test_resverse():
    assert reverse('god') == 'dog'
def test_resverse02():
    assert reverse('456') == 'dog' #执行测试用例这个会不通过

fixture测试环境准备,测试数据准备

[
  {"name": "tony","password": "password"},
  {"name": "tony2","password": "password2"},
  {"name": "tony3","password": "password3"}
]
//新建一个名为users_dev.json的文件
'''
执行顺序:
1、pytest找到test开头或结尾py文件,再去找到以test开始的方法,然后执行这个test方法做测试
2、执行该方法发现传入参数里有跟fixture同名的users
3、pytest认定users是fixture,执行users方法,读取json文件解析成python对象
4、开始真正执行test_user_pwd方法,users返回值传入该方法
5、测试环境准备、数据准备
'''

#新建一个有test的py脚本
#fixture的使用
import pytest
strfile = 'C:\\ProgramEdit\\pythonProject\\202112245_03\\pytest\\users_dev.json'#你的users_dev.json存储文件位置

class TestUserPassword:
    @pytest.fixture()
    def users(self):
        return json.loads(open(strfile,'r').read())

    def test_user_pwd(self,users):
       with pytest.raises(AssertionError):
         for user in users:
             pwd = user['password']
             assert len(pwd)>=10#这么写测试用例是不通过的,会报AssertionError说我们断言错误,但这么写执行用例时不会报错
             #因为我们规定了可以出现AssertError异常,所以pytest test_03_fixture.py能够成功执行


            
# class TestUserPassword:
#     @pytest.fixture()
#     def users(self):
#         return json.loads(open(strfile,'r').read())
#     def test_user_pwd(self,users):
#         for user in users:
#             pwd = user['password']
#             assert len(pwd)>=5 #这个是不报异常可以的执行语句记得控制台执行测试脚本时候尝试一下

# class TestUserPassword:
#     @pytest.fixture()
#     def users(self):
#         return json.loads(open(strfile,'r').read())
#     def test_user_pwd(self,users):
#         for user in users:
#             pwd = user['password']
#             assert len(pwd)>=10 #这个是执行报错的记得注意一下            
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python03-pytest框架 的相关文章

  • 如何在 PyCharm 中设置运行配置的默认工作目录

    当我想运行众多 python 脚本之一时 我点击运行 这会创建一个新的运行配置 该配置的工作目录是 python 脚本文件所在的文件夹 相反 它应该从项目范围的固定文件夹运行 我想以某种方式进行设置 但我真的不明白为什么 这有点奇怪 因为我
  • 在 Robot 框架中的测试套件中设置会话 cookie

    我的应用程序是一个 RESTful API 仅当会话 cookie 存在时才有效 不幸的是 我总是需要在一个网页登录获取 cookie 并传递会话cookie到 API 来建立会话 我能够找出解决方案来验证会话 cookie 并将其传递给
  • 最近的 AWS 区域的客户端 IP 地址

    Question 我想从客户端设备将一些数据上传到 AWS 但我想上传到最近的 AWS 区域的 S3 存储桶 同样 我希望能够从最近的区域下载 当然 我会在每个区域设置一个存储桶 我可以使用一个系统 它可以获取客户端的 IP 地址 然后确定
  • 使用 python 中的 java 库

    我有一个 python 应用程序和 java 应用程序 python 应用程序为 java 应用程序生成输入并在命令行上调用它 我确信一定有一个更优雅的解决方案 就像使用 JNI 从 Java 调用 C 代码一样 有什么指点吗 仅供参考 我
  • 指定的可执行文件不是该操作系统平台的有效应用程序。

    我不断收到错误消息System ComponentModel Win32Exception The specified executable is not a valid application for this OS platform 当
  • 将 SQLite 的 FTS3/4 与 Python 3 结合使用

    我一直在使用 python 的 Flask 框架开发 peewee 的示例博客应用程序 看https github com coleifer peewee https github com coleifer peewee 内部示例 gt 博
  • 从两个字典创建一个新列表

    这是一个关于Python的问题 我有以下字典列表 listA t 1 tid 2 gtm 3 c1 4 id 111 t 3 tid 4 gtm 3 c1 4 c2 5 id 222 t 1 tid 2 gtm 3 c1 4 c2 5 id
  • @monthly cron 作业不可靠

    我们的客户希望我们每月创建一份报告 过去 我们使用 monthly cron 作业来完成此任务 但这并不可靠 服务器可能会在这一分钟内宕机 Cron 不会重新运行这些作业 如果服务器已启动 此时数据库可能无法访问 如果服务器已启动且数据库已
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • 使用 Python gdata 和 oAuth 2 对日历进行身份验证

    我正在将一个 Python 应用程序从 oAuth 1 迁移到 oAuth 2 该应用程序读取用户的 Google 日历提要 使用 oAuth 1 如果用户可以使用他的 GMail 进行身份验证 我的应用程序将打开浏览器 帐户并授权访问 我
  • Python:多重分配与单独分配速度

    我一直在寻求从我的代码中挤出更多的性能 最近 在浏览时这个 Python 维基页面 https wiki python org moin PythonSpeed 我发现了这个说法 多重分配比单独分配慢 例如 x y a b 比 x a y
  • 我的 R 平方分数为负,但使用 k 倍交叉验证的准确度分数约为 92%

    对于下面的代码 我的 r 平方分数为负 但使用 k 折交叉验证的准确度分数为 92 这怎么可能 我使用随机森林回归算法来预测一些数据 数据集的链接在下面的链接中给出 https www kaggle com ludobenistant hr
  • 为什么 Python 布尔值占用超过一个字节?

    显然 Python 中整数占用 24 个字节 我可以理解 它这样做是因为代表无限数字的额外花哨 然而 布尔数据类型看起来也花费了高达 24 个字节 尽管它只能表示两个可能值之一 为什么 除了 1 位表示之外 还可能需要存储哪些额外数据Tru
  • 按工作日分组的熊猫 (M/T/W/T/F/S/S)

    我有一个 pandas 数据框 其中包含 YYYY MM DD arrival date 形式的时间序列 作为索引 我想按每个工作日 周一到周日 进行分组 以便计算其他日期列是平均值 中位数 标准差等 我最终应该只有七行 到目前为止我只知道
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi

随机推荐

  • boost多边形交集、并集

    交集 http www boost org doc libs 1 56 0 libs geometry doc html geometry reference algorithms intersection html 并集 http www
  • STM32技巧: Keil错误提示“ File Not Found”

    1 文件已添加到工程目录但提示 file not found 原因 仅添加到目录但未包含编译文件的路径 解决 Option gt C C gt Include Paths 添加提示缺失的文件所在路径 错误提示消失
  • vcs -xprop的理解

    一 vcs xprop简介 https www synopsys com zh cn verification simulation vcs xprop html Verilog 和 VHDL 常用于数字设计建模 设计人员使用 RTL 构造
  • 如何在 swgger 中设置连接前后端的 API 接口

    在的网站大多都是前后端分离式的开发 前后端都衍生出了自己的框架 现在前后端交互的唯一方式就是 API 接口 曾经前后端交互都需要后端人员手动编写 API 接口文档 规定路径 请求方式 返回类型 这样效率很低 swagger 就是更好地书写
  • 基于Python和笛卡尔遗传规划(Cartesian Genetic Programming, CGP),对柔性车间调度问题FJSP求解

    前言 实习阶段在研究柔性车间调度 即 Flexible Job shop Scheduling Problem FJSP 的问题 公司的前辈已经使用了很多方法实现了对复杂的实际调度问题进行求解 我做的部分主要是在公开数据集上 尝试用遗传规划
  • uniapp 路由不要显示#

    在Uniapp中 路由默认使用的是hash模式 即在URL中添加 符号 如果你不想在URL中显示 可以切换为使用history模式 要在Uniapp中使用history模式 可以按照以下步骤进行操作 打开manifest json文件 在
  • 2022深圳福田区专精特新小巨人企业申报条件,补贴50万

    深圳福田区专精特新小巨人企业申报后 可获得50万补贴 需要申报认证及补贴的企业 在中华人民共和国境内工商注册登记 连续经营3年以上并具有独立法人资格的中小企业 想要申报的企业 都需要在了解规则条件的基础上才能提前做好准备 用华夏泰科进行便捷
  • 华为OD机试 - 统计射击比赛成绩(Java)

    题目描述 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高3个分数之和进行降序排名 输出降序排名后的选手ID序列 条件如下 一个选手可以有多个射击成绩的分数 且次序不固定 如果一个选手成绩少于3个 则认为选手的
  • C语言中 error: expected ‘;‘, ‘,‘ or ‘)‘ before ‘&‘ token 解决方法

    问题描述 近期发现包括我在内的很多同学在用DEV C 编译的时候会出现 error expected or before token 这个如下图的错误提示 很多同学很不解 和其他人比较代码后 明明就没有错呀 为什么呢 经过查找相关资料 其实
  • 机器学习——高斯过程

    高斯过程 所谓高斯 即高斯分布 所谓过程 即随机过程 高斯分布 一维高斯 p x N
  • MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型

    MATLAB代码 考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 关键词 碳捕集 综合能源系统 电转气P2G 热电联产 低碳调度 参考文档 Modeling and Optimization of Combined Heat an
  • 魅族7.0系统手机最简单激活Xposed框架的流程

    对于喜欢研究手机的朋友而言 常常会使用到XPOSED框架及种类繁多功能极强的模块 对于5 0以下的系统版本 只要手机能获得root权限 安装和激活XPOSED框架是异常轻易的 但随着系统版本的不断迭代 5 0以后的系统 激活XPOSED框架
  • Xray和burpsuite联动被动扫描

    想挖点src又没啥思路 试着挂个自动漏扫工具xray 又看到能与burp联动实现自动扫就想尝试一下 搞好进自己网站测试了一下 的确是爬虫式漏扫 访问量属实大 不过自己设置设置还是一个很不错的工具 安装配置 是在ddosi org这里找的破解
  • 经典问题(20)天平与砝码问题

    题目 如果有砝码序列 1 3 9 27 81 243 729 我们至少可以称量1000以内的所有整数重量 比如 5 9 3 1 即 9 放入对侧盘 3 1 放入同侧盘 再比如 19 27 9 1 编程的目标是 给定一个重量 求 天平称重时
  • Acwing-4729. 解密

    如果dt小于0 或者r不是整数 或者m r是奇数的话 m 2 与 m 2 的奇偶性相同 那么方程无解 输出NO include
  • 三进制计算机基本原理,三进制(三进制计算机)

    如题 越详细越好 最好再举个例子 十进制转任何进制都是采用整数除n取余倒序排列 小数乘n取整顺序排列的方法 比如 32 12 转 三进制 整数部分 32除以3商10余210除以3商3余13除以3商1余01除以3商 十进制数换三进制短除三 三
  • java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

    学生信息管理1 0 涉及的知识点 三层架构理论 简单理解三层架构就是 上层调用下层 下层为上层提供服务 最上层 视图层 由jsp servlet组成 中间层 服务层 组装数据访问层所实现的功能 最下层 数据访问层 实现单一得某项功能 为服务
  • CSS常用样式

    目录 引入CSS样式的三种方式 内联 行内 样式 内部样式表 外部样式表 基础选择器 标签选择器 标签 各种样式 类选择器 类名 各种样式 id选择器 id号 各种样式 字体样式 font 文本样式 鼠标样式 cursor 背景样式 bac
  • MySql保留两位小数

    1 格式化小数函数format x d format 函数会对小数部分进行四舍五入操作 整数部分从右向左每3位一个逗号进行格式化输出 三位小数 整数 不足两位的情况 0 001的情况 2 随机函数ROUND X D 三位小数 整数 不足两位
  • Python03-pytest框架

    Python03 pytest测试框架 pytest简介 支持参数化可以细分控制测试用例 支持简单的单元测试和复杂的功能测试 还支持selenium appium等自动化测试 接口自动化测试 支持第三方插件 可以自定义扩展 pytestht