Python中如何进行自动化测试?代码举例讲解

Python中有多种方式进行自动化测试,主要有:

1. unittest:

  • unittest是Python标准库中的测试框架。
  • 我们可以通过编写测试用例来测试代码逻辑和输出是否正确。
  • 测试用例要以test_开头,并继承unittest.TestCase。
    例如:
import unittest

def add(a, b):
    return a + b

class TestAdd(unittest.TestCase):
    def test_add(self):   # test方法名以test_开头
        self.assertEqual(add(1, 2), 3)

    def test_add_fail(self):
        self.assertEqual(add(1, 2), 4)  # 故意的错误测试

if __name__ == '__main__':
    unittest.main()  # 运行测试用例

这会运行两个测试方法,并显示一个失败一个成功。

2. pytest:

  • pytest是一种更加先进的测试框架,有很多优点:
  • 不需要继承TestCase。
  • 有丰富的插件支持。
  • 可以支持参数化测试。
  • 可以支持fixture(测试夹具)。
    例如:
def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3

def test_add_fail():
    assert add(1, 2) == 4

def test_add_param(a, b, expected):
    assert add(a, b) == expected

test_params = [(1, 2, 3), (10, 20, 30), (1, 0, 1)]

@pytest.mark.parametrize('a, b, expected', test_params)    
def test_add_param_deco(a, b, expected):
    assert add(a, b) == expected 

我们可以使用pytest test_file.py来运行测试。

pytest提供简洁易用的测试方式,是目前最流行的测试框架。要成为一名专业的Python工程师,掌握测试技巧和理念是必不可少的。