pytest与unittest

文章介绍了unittest和pytest两种Python测试框架的使用规则,包括测试用例设计、参数化测试、自动生产测试报告的方法,如pytest-html和allure。此外,还讨论了跳过用例的策略以及前后置操作,并对比了unittest和pytest的执行顺序和断言方式。文章最后提到了pytest的一些常见插件和配置选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、用例设计规则

        (1)unittest测试类必须继承unittest.TestCase;

        (2)unittest测试函数必须以“test_”开头,测试类也可以由‘Test’开头;

        (3)unittest测试类必须有unittest.main()方法

        (4)pytest测试函数必须以“test”开头,测试类命名必须以”Test”开头,测试文件的文件名必须以”test_”开头,或者以”_test”结尾

        (5)pytest测试类里面不能使用”init”方法

2、参数化
(1)pytest常用参数方式

        parametrize数据驱动

        用到装饰器@pytest.mark.parametrize(args_name,args_value),args_name代表变量名,args_value代表需要测试的数据。

import pytest


class Test05:


    @pytest.mark.parametrize("args_name", ['百里','婉儿','露露'])
    def test_get_token(self,args_name):
        print('测试参数'+args_name)

97f9eb0f74f11020abf03746b6cc736d.png

        yaml驱动

1)创建yaml文件如下:

-
  name: 获取token接口1
  request:
    method: get
    data:
      name: 百里
      age: 18
    url: https://www.baidu.com
  validate: None
-
  name: 获取token接口2
  request:
    method: get
    data:
      name: 婉儿
      age: 17
    url: https://www.baidu.com
  validate: None

2)添加读取yaml的工具类yaml_util.py

import yaml


def read_yaml(yaml_path):
    with open(yaml_path,encoding='utf‐8') as f:
        value = yaml.load(f,Loader=yaml.FullLoader)
    return value

3)用例读取数据

import pytest


from commons.yaml_util import read_yaml


class Test05:


    @pytest.mark.parametrize("args", read_yaml("./testcase/test_05.yaml"))
    def test_get_token(self,args):
        print(args)
        print(args['request']['date']['name'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值