当前位置: 首页 > news >正文

Pytest项目_day07(pytest)

Pytest

请添加图片描述

  • 文件名需要以 test_ 开头或以_test结尾,同时文件内部的方法名也需要以 test_ 开头,这样pytest才会把它当作测试用例文件和测试用例中的测试方法,当我们运行该测试用例文件时,会执行该文件内的所有测试方法
  • 如果在控制台直接输入pytest <文件名>,那么文件不以 test_ 开头或以_test结尾,也能成功执行
  • 但是如果pytest <文件夹名>,那么pytest只会运行该文件夹下以 test_ 开头或以_test结尾的文件
  • 一般使用 test_ 开头
  • 如果测试用例内部的方法没有用test_开头,那么pytest不会运行这个方法
  • 测试类必须以Test开头,且不能有init方法,当我们点击左侧的小三角时,会运行该类下的所有测试方法
    请添加图片描述- 在pytest中,判断期望值是否跟实际值相等,是使用 assert来实现的- 使用pytest来运行测试用例时,需要在控制台中,输入pytest <文件名>
  • 运行测试用例后,在控制台会显示运行结果
    • .F表示第一个通过,第二个没通过
    • E表示error的代码位置
    • 右侧的100%表示测试用例的所有方法均执行完成
      在这里插入图片描述

Pytest中的测试用例执行顺序

  • 默认执行顺序

    • 按照定义的先后,自上而下执行
    • 如果是在同一文件夹下的测试用例文件,那么会按照文件名的顺序,自上而下执行
  • 使用 pytest-ordering 自定义顺序(需要安装pytest-ordering包)
    在这里插入图片描述

  • 在方法前加上run注解,其中order=几,就是第几位执行

常见的断言类型

  • 等于:==
  • 不等于:!=
  • 大于:>
  • 小于:<
  • 属于:in
  • 不属于:not in
  • 大于等于:>=
  • 小于等于:<=
  • 是:is
  • 不是:is not
    在这里插入图片描述

使用pytest来做request测试

  • 这里的test_mobile()test_mobile_post()是两个近似的测试方法,区别在于一个是get,一个是post
  • 注意:
    • 在Json中,我们可以使用[key]来获取value,例如result['msg'] == "ok"
import requestsdef test_mobile():params = {"shouji": "13906191369","appkey": "123"}r = requests.get(url="http://sellshop.5istudy.online/sell/shouji/query", params=params)print(r.status_code)assert r.status_code == 200result = r.json()assert result['status'] == 0assert result['msg'] == "ok"assert result['result']["shouji"] == "13906191369"assert result['result']["province"] == "浙江"assert result['result']["city"] == "杭州"assert result['result']["company"] == "中国移动"assert result['result']["areacode"] == "0571"# print(r.json())def test_mobile_post():params = {"shouji": "13906191369","appkey": "123"}r = requests.post(url="http://sellshop.5istudy.online/sell/shouji/query", params=params)assert r.status_code == 200result = r.json()assert result['status'] == 0assert result['msg'] == "ok"assert result['result']["shouji"] == "13906191369"assert result['result']["province"] == "浙江"assert result['result']["city"] == "杭州"assert result['result']["company"] == "中国移动"assert result['result']["areacode"] == "0571"
  • 运行后的结果为:
    在这里插入图片描述

pytest指定目录/文件执行

  • pytest testcases 指定目录执行,则会依次执行该目录下所有符合条件的测试用例
  • pytest testcases/test_one.py 指定文件执行,则会依次执行该文件内的所有符合条件的测试方法
  • pytest什么都不加,那么就会从当前的工作环境下,依次执行所有符合条件的测试用例(包括文件夹内)

pytest.ini配置文件

  • 可以使用testpaths来指定默认执行的路径或文件
  • 这样就可以在控制台直接输入pytest,默认执行的就是testpaths的路径,等同于pytest testcases
  • ./表示和pytest.ini处在同一级目录下
    在这里插入图片描述

pytest常用运行参数

  • pytest -m:执行特定的测试用例
  • pytest -k:执行用例包含“关键字”的用例
  • pytest -q:简化控制台的输出
  • pytest -v:可以输出用例更加详细的执行信息
  • pytest -s:输出我们用例中的调试信息
http://www.lryc.cn/news/613115.html

相关文章:

  • npm 与 npx 区别详解。以及mcp中npx加载原理。
  • 《深入理解Java字符串:从基础到高级特性》
  • 贪心+矩阵算法
  • 与页面共舞 —— Content Scripts 的魔法
  • 面向对象之类、继承和多态
  • leafletMap封装使用
  • 动手学深度学习13.11. 全卷积网络 -笔记练习(PyTorch)
  • Linux 中断系统全览解析:从硬件到软件的全路线理解
  • 外部排序总结(考研向)
  • MongoDB数据存储界的瑞士军刀:cpolar内网穿透实验室第513号挑战
  • 数据结构:双向链表(Doubly Linked List)
  • 生成对抗网络(GAN)实战 - 创建逼真人脸图像
  • 电路相量法
  • (易视宝)易视TV is-E4-G-全志A20芯片-安卓4-烧写卡刷工具及教程
  • C++的“模板”
  • day069-Jenkins基础使用与参数化构建
  • golang的面向对象编程,struct的使用
  • 急危重症专科智能体”构建新一代急诊、手术与重症中心的AI医疗方向探析
  • 【深度学习机器学习】构建情绪对话模型:从数据到部署的完整实践
  • 小鸡模拟器安卓版:经典街机游戏的移动体验
  • Elcomsoft Wireless Security Auditor 安装教程-安全检测工具使用指南
  • 数据结构----栈和队列认识
  • 深度学习-卷积神经网络CNN-1×1卷积层
  • 仓库管理系统-21-前端之入库和出库管理
  • Windows中安装rustup-init.exe以及cargo build报错443
  • 零基础-动手学深度学习-9.3. 深度循环神经网络
  • 流程图使用规范
  • Android 之 面试八股文
  • GCC与NLP实战:编译技术赋能自然语言处理
  • 解决GitHub无法打开