Python Pytest测试进阶

环境准备

  • python3环境
  • pycharm
  • pytest安装

课程价值

  • 理解 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/HogwartsLG6

飞儿老师查收:https://github.com/Guoxiang1992/Code/tree/main/Testing

请老师查收:https://github.com/jww1996/homework_add_div

https://github.com/miaoqly/miaomiaomiao.git 不会分开提交 请老师查看图片

预习作业提交
https://github.com/zimolanlan2008/pytest_homework2.git

https://github.com/zpl1024/GitDemo/tree/master/homework/pytest_test

老师请查收:https://github.com/WangHao27/PytestDemo.git

交作业
https://github.com/ChuckCYLiu/hogwarts/tree/master/testing/pytest_practice4-1

老师请查收:https://github.com/ZhangYi8326/Pytest_Zoey.git

这是我的作业,老师请查收
https://github.com/Mr-ZhangChenxu/pytest_homework

请查收https://github.com/wy142222/pytest_exercise

python pytest测试进阶课后作业: https://github.com/GaoPangPang0318/MyStudy/tree/master/python_pytest_adv

飞儿老师请查收:https://github.com/13259727865/testing

https://github.com/cherryche17/my_works
请查收!Pytest_practice1

pytest 进阶作业–ruyu

https://github.com/Th0mas1ee/Hogwarts.git

请老师查收:

老师请查收:https://github.com/fatfatfatFatTiger/HogwartsLG6.git

老师好,作业链接:https://github.com/zxw-678/Calculator

更新了下,https://github.com/zpl1024/GitDemo/tree/master/homework/pytest_test/testing_cases