当前位置: 首页 > 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.dtcms.com/a/319383.html

相关文章:

  • MySql MVCC的原理总结
  • S7-1200 串行通信介绍
  • 配送算法9 A GRASP algorithm for the Meal Delivery Routing Problem
  • React 中 useRef 使用方法
  • 设计模式 观察者模式
  • react-router/react-router-dom
  • 对话访谈|盘古信息×冠捷科技:全球制造标杆的智能化密码
  • 鸿蒙类型转化Json转map
  • 【实录】NestJS 中的 IoC
  • 动力电池点焊机:效率质量双提升,驱动新能源制造升级
  • 中小制造企业数字化转型的可持续发展:IT架构演进与管理模式迭代
  • [盛最多水的容器]
  • WPS定制设置成绿色软件
  • Go语言Ebiten坦克大战
  • ADC常用库函数(STC8系列)
  • 现代制冷系统核心技术解析:从四大件到智能控制的关键突破
  • 客户管理系统的详细项目框架结构
  • 从房地产企业运作观企业能力建设
  • (第八期)VS Code 网页开发入门指南:从零开始掌握前端开发工具
  • Leetcode——菜鸟笔记2(移动0)
  • 92. 反转链表 II
  • 【实时Linux实战系列】实时分布式计算架构的实现
  • DataEase官方出品丨SQLBot:基于大模型和RAG的智能问数系统
  • 机柜指示灯识别误报率↓85%:陌讯多模态融合算法实战解析
  • Linux 内核:节点创建汇总
  • NFS 服务器
  • 【运维进阶】NFS 服务器
  • 16.Home-懒加载指令优化
  • .NET 10 新增功能系列文章5——C# 14 中的新增功能
  • latex in overleaf快速通关论文排版