Pytest项目_day14(参数化、数据驱动)

parametrize

  • 参数化可以组装测试数据。在测试前定义好测试数据,并在测试用例中使用

单参数单次循环

  • 我们可以在装饰器中使用mark.parametrize,来定义参数名和参数值列表
    • 参数名还需要传给函数
    • 参数名需要用字符串来定义,参数值列表需要用可迭代对象来定义
    • 如果我们只定义了一个参数名,并且只有一个参数值元素,那么只会将该元素赋值给参数名后,执行一次该测试用例

单参数多次循环

  • 如果我们的参数值列表有多个元素,那么pytest会依次将列表中的每一个元素都赋值给参数,同时执行一次测试用例

多参数多次循环

  • 我们可以定义多个参数名,并设置对应的多个参数值列表
    • 每个参数名都需要传给函数
    • 注意参数值列表中的每个元素也需要是可迭代对象,比如我们可以使用元组,列表等

  • 参数值列表的对象还可以使用字典来定义
  • 注意:我们需要用字典中访问value的方式,即["key"]来访问value
  • 当我们的参数值列表中的元素为字典时,那么我们赋值给参数名的时字典对象,因此可以有多个key值