python之测试框架pytest(一)

一、测试基础补充:测试金字塔

1、越接近底层速度越快效率越高,越接近顶层速度越慢效率越低
2、越接近底层成本越低,越接近顶层成本越高

二、单元测试框架

1、单元测试

a、组织代码的单位(函数、类、模块、包)

b、单元:对组织代码的最小单元的测试,最小单元(函数、类的方法)

c、单元测试:对函数或者类下面的方法进行的测试

d、单元测试:开发自己做或者测试开发做;国内一般不做单元测试

2、框架

a、不使用框架也可以做自动化测试

1)使用if判断

2)assert断言:断言成功不会输出任何内容,断言失败会报AssertionError错误,异常处理

b、为什么要使用框架

1)手工

手工调用测试函数

手工去管理测试中断

手工生成测试报告

2)什么是框架

框架就是需要解决手工的问题的

框架:提供各种各样的工具和手段,辅助你提升效率,各种各样的工具手段的集合,形成一套系统

需要遵循框架的规则

 

 

 3、python单元测试框架

1)unittest(python内置测试框架)

python内置的测试框架:使用的话需要学习好多基础,和安装的python兼容,稳定。

2)pytest(主流)

a、pytest的优点缺点

公司主流,功能极其强大,使用简单,支持1000左右的插件(强大的插件系统),扩展性强
实现了测试用例里面的灵活筛选和管理(mark标记功能)
短处:需要安装与python存在版本上兼容问题,不过目前pytest兼容的比较好

b、安装:pip install pytest

c、测试用例编写(pytest规则)

函数:必须以test开头test_*,也可以以test结尾_test,但是建议以test开头

模块:必须以test开头test_*.py,也可以以test结尾*_test.py,建议以test开头

类:规范:以Test开头命名Test*(可以不以Test开头,但是为了规范还是以Test开头)

d、收集测试用例、运行测试用例

a、一定要在指定目录下运行pytest,如果想要运行哪个目录下的test用例,需要进入该目录运行pytest命令运行测试用例

b、运行某个模块里的测试用例的三种方法

命令行下:pytest 模块名.py

右键点击"run pytest":(调试单个模块的时候可以使用右击)

  1、file-setting-搜索"pytest"-Tool(Python Integrated Tools)-Testing(Default testing runner)选择pytest

  2、run->点击run...->选择pytest

使用程序入口run_test.py:

  该py文件是用来收集测试用例,运行测试用例

import pytest

if __name__ == '__main__':
  pytest.main()

c、pytest测试报告结构

第一部分:test session starts:测试用例失败和通过的结果

首部分:运行环境、收集测试用例数量:collected 3 items,F(红色):表示不通过,点(绿色):表示通过,测试进度

第二部分:FAILURES:失败用例回溯信息,显示失败的原因

第三部分:Captured stdout call:输出捕获信息

1、(只有用例不通过的时候才会打印信息)
2、如果实在通过用例需要打印信息,那么在运行用例的时候,使用"-s"
pytest -s:强制打印信息

第四部分:short test summary info:总结信息

统计未通过的信息,成功通过的不会显示

最后会有一个总结:多少用例失败,多少用例未被选中,多少用例通过,用了多少时间

 

 

 

 

 

d、测试报告的输出

1)安装生成报告的插件:pip install pytest-report-me(有问题)
或者pip install pytest-html

2)输出报告:pytest --report=output.html

或者 pytest --html=output.html

f、mark标记功能

对测试用例进行筛选和管理

1)在测试用例上添加装饰器:@pytest.mark.标签名

2)注册标签:建pytest.ini配置文件(项目的根目录下),添加标签(如果不注册标签会告警)

[pytest]
markers =
标签1
标签2
...

3)运行标签标记的测试用例:pytest -m "标签名"

 

3)nose(不用)

posted @ 2021-01-07 18:08  %女王%  阅读(738)  评论(0编辑  收藏  举报