hello 大家好我是Monday,今天给大家带来一篇关于pytest自动化测试框架的使用的文章。
一、环境安装
pytest 是 python 中的第三方库,使用之前需要先安装,在命令行中运行以下安装命令 :
检查安装是否成功以及安装的版本,命令行命令如下:
执行上述命令,能够输出版本信息,那就说明安装成功啦。
二、用例的识别与运行
用例编写规范:
- 测试文件以 test_ 开头(以 _test 结尾也可以)
- 测试类以 Test 开头,并且不能带有 init 方法
- 测试函数以 test_ 开头
- 断言使用基本的 assert 即可
创建一个 python 文件,命名以 test_ 开头(或者以 test 结尾),创建测试方法以 test 开头,测试类需要以 Test 开头。创建文件名为 test_add.py 文件,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
def add(x, y): return x + y
def test_add(): assert add(1, 10) == 11 assert add(1, 1) == 2 assert add(1, 99) == 100
class TestClass: def test_one(self): x = "this" assert "h" in x
def test_two(self): x = "hello" assert hasattr(x, "check")
|
三、测试结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| pytest test_add.py ================================================== test session starts ================================================== platform win32 -- Python 3.7.2, pytest-5.4.1, py-1.8.1, pluggy-0.13.1 rootdir: E:\jsfund_workerspace\crawl_platform_jsfund\test plugins: anyio-3.3.0, celery-4.4.2 collected 3 items
test_add.py ..F [100%]
======================================================= FAILURES ======================================================== __________________________________________________ TestClass.test_two ___________________________________________________
self = <test.test_add.TestClass object at 0x0000021C9C6547F0>
def test_two(self): x = "hello" > assert hasattr(x, "check") E AssertionError: assert False E + where False = hasattr('hello', 'check')
test_add.py:20: AssertionError ================================================ short test summary info ================================================ FAILED test_add.py::TestClass::test_two - AssertionError: assert False ============================================== 1 failed, 2 passed in 0.10s
|
测试方式
1、pytest.main 执行的参数传递
pytest.main 方法是执行测试参数传递方式:
所以把参数放在列表中,每个参数就是列表中的一个元素
1
| pytest.main(['-v','-s'])
|
参数 : 显示测试执行的输出信息-s
参数 : 显示测试的详细参数信息-v
详细的参数可以使用命令 查看pytest -h
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
import pytest
def add(x, y): return x + y
def test_add(): assert add(1, 10) == 11 assert add(1, 1) == 2 assert add(1, 99) == 100
class TestClass: """ @pytest.mark.run(order=2) 执行顺序order=1 > order=2 """ @pytest.mark.run(order=2) def test_one(self): x = "this" assert "h" in x
@pytest.mark.run(order=1) def test_two(self): x = "hello" assert hasattr(x, "check")
pytest.main(['-v', '-s', "test_add.py"])
|
2、指定执行的测试目录
命令pytest 测试目录路径
pytest 会执行指定目录路径下所有的测试用例
3、指定执行的测试文件
命令pytest 测试文件路径
1
| pytest testcase/test_demo1.py
|
pytest 会执行指定测试文件中所有的测试用例
4、指定执行的测试类
命令pytest 测试文件::测试类
1
| pytest testcase/test_demo1.py::TestClass
|
pytest 会执行指定测试类里面所有的测试用例
5、指定执行的测试用例
命令pytest 测试文件::测试类::测试方法
1
| pytest testcase/test_demo1.py::TestClass::test_method
|
四、pycharm 配置pytest测试
(1)Mac下
PyCharm Community Edition—>Preference—>Tools—>Python Integrated Tools, 把Default test runner换为pytest就可以了
(2)windows下
PyCharm Community Edition—>settings—>Tools—>Python Integrated Tools, 把Default test runner换为pytest就可以了
参考文章:
(1)pytest 自动化测试框架(一)
https://developer.aliyun.com/article/776171
结束语:
今天的分享就到这里了,欢迎大家关注微信公众号”菜鸟童靴“