python pytest 测试实战1

标题

python pytest 测试实战1

课程价值

  • 理解 pytest 框架结构
  • 掌握运行及常用的运行参数
  • 掌握参数化与数据驱动

大纲

  • pytest 介绍与安装
  • pytest 运行
  • pytest 框架结构
  • pytest 参数化

时长

90分钟

PPT

https://pdf.ceshiren.com/xly3/python-pytest测试实战1

实战内容

参考资料

pytest 安装

安装命令

pip install pytest

版本验证

pytest --version

pycharm 配置

  1. 进入 pycharm 设置
  2. 搜索 pytest
  3. 设置 test runner
  4. 删除 pycharm 运行记录

pytest 运行

pytest 规则

  • 测试文件、测试函数、测试方法,名称需要以 test_ 开头
  • 测试类名称需要 Test 开头
  • 测试类中不能包含 init 方法

pycharm 中运行

  1. 运行整个测试文件:在文件上点击鼠标右键,选择 run
  2. 点击绿色小三角,运行对应的测试类或者测试方法

命令行运行

  • 运行当前目录下所有测试文件:pytest
  • 运行指定的测试文件:pytest 文件名
  • 运行指定文件中的指定的类或者方法:pytest 文件名::测试类名::测试方法名
  • 查看执行过程中的详细信息和打印信息:pytest -vs
  • 只收集测试用例不运行:pytest --collect-only
  • 生成执行结果文件:pytest --junitxml=./result.xml

pytest 框架结构

  • 模块级(setup_module/teardown_module)模块始末,全局的(优先最高)
  • 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
  • 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
  • 方法级(setup_method/teardown_methond)开始于方法始末(在类中)
  • 类里面的(setup/teardown)运行在调用方法的前后

参数化

  • 单个参数化:参数名称写在字符串中,参数值用列表传递
  • 多个参数:参数名称写在字符串中,参数值用列表套列表或者元组的方式传递
  • 测试用例起别名:ids=
  • 笛卡尔积:用两个装饰器分别传入参数
  • 从 yaml 中读取参数:数据读取成为参数化中需要的参数格式

课后作业

  1. 补全计算器中加法和除法的测试用例
  2. 使用参数化完成测试用例的自动生成
  3. 在调用测试方法之前打印【开始计算】,在调用测试方法之后打印【计算结束】

注意:

  • 使用等价类,边界值,因果图等设计测试用例
  • 测试用例中添加断言,验证结果
  • 灵活使用 setup(), teardown() , setup_class(), teardown_class()

课堂代码

https://github.com/ceshiren/HogwartsFIS03

课后调查表