Python Pytest 测试框架实战

霍格沃兹测试开发

ceshiren.com

目录

  • 知识点梳理
  • 测试流程
  • 知识点练习
    • 业务分析
    • 用例设计
    • 编写用例
  • 练习题点评与解析

为什么要学习单测框架?

  • 测试发现:从多个文件中找到测试用例
  • 测试执行:按照一定的顺序和规则去执行用例,并生成结果
  • 测试判断:通过断言判断预期结果和实际结果的差异
  • 测试条件:给定一些前置和后置的条件
  • 测试报告:统计测试进度、耗时、通过率,生成测试报告

知识点梳理

实战练习

  • 计算器场景
  • 设计测试用例

计算器场景需求分析

  • 被测方法需要传递的数据类型为:整型或者浮点型
  • 数据区间为【-99,99】
  • 浮点数允许小数点后两位

被测代码分析


class Calculator:
    def add(self, a, b):

        if a > 99 or a < -99 or b > 99 or b < -99:
            print("请输入范围为【-99, 99】的整数或浮点数")
            return "参数大小超出范围"

        return a + b

    def div(self, a, b):
        if a > 99 or a < -99 or b > 99 or b < -99:
            print("请输入范围为【-99, 99】的整数或浮点数")
            return "参数大小超出范围"

        return a / b

测试用例设计

  • 等价类
  • 边界值
  • 错误推断

测试用例编写 1

  • 题目:

    • 根据需求编写计算器加法相应的测试用例
    • 在调用每个测试方法之前打印【开始计算】
    • 在调用测试方法之后打印【结束计算】
    • 调用完所有的测试用例最终输出【结束测试】
    • 为用例添加标签
  • 注意:

    • a、使用等价类,边界值,错误推测法等方法进行用例设计
    • b、用例中要添加断言,验证结果
    • c、灵活使用测试装置

总结知识点

  • setup, teardown
  • 为用例添加标签
  • 异常处理
  • 断言

测试用例编写 2

  • 使用参数化实现测试数据的动态传递
  • 整个模块实现一次数据清理
  • 所有用例执行完成,完成日志打印
  • 生成测试报告(添加日志,截图,分类,测试步骤等)