Python Pytest单元测试框架

  

  pytest是目前公司使用的主流的单元测试框架,其简单灵活,容易上手,而且支持的插件上千种,功能极其强大。

一、pytest安装

  pytest的安装有两种方法,第一种方法是命令行输入pip install pytest(Pycharm的Terminal命令行或者Window系统cmd进入命令行);第二种方法是File >> Settings >>  Project >> Project Interpreter >> 右侧+ >> 搜索pytest >> Install Package(注意:一定不要勾选Install to user's site packages directory) 

二、pytest测试用例的编写

  ①测试用例模块必须是以test_开头(test_*.py)或者以_test结尾(*_test.py)的py文件,同一个项目中最好统一,建议使用test_开头;

  ②测试函数必须以test_开头;

  ③测试用例如果写在类下面,类名称以Test开头。

  换言之,

  pytest搜集测试用例遵循以下规则:

  ①命名规则符合test_*.py或*_test.py文件下的以test_开头的函数;

  ②以Test开头命名的类下的以test_开头的方法。

  

三、pytest 收集用例

  一定要在指定的目录下运行pytest,pytest收集用例有以下几种途径:

  1、命令行运行,收集指定目录下的所有用例:打开terminal终端,进入指定目录,输入pytest,如:

  

  2、命令行运行,收集指定模块下的用例:打开terminal终端,进入指定目录,输入pytest + 模块名称,如:

  

  3、文件内(代码最后的顶格空白行)右击"Run pytest in",收集指定模块下的用例:

    第一步,设置默认的测试运行器为pytest,File >> Setting >> Tools >> Python Integrated Tools >> Testing设置Default test runner为pytest;

  

    第二步,点击菜单栏Run,选择Run并点击,再选择pytest in(后续可以直接文件内右击选择Run pytest in...,如果未出现,重启Pycharm )。若要将右击设回默认的Run,点击菜单栏,选择Run并点击,再选择当前文件名,重启pycharm即可。

  

   4、通过程序pytest.main()方法来收集并运行用例,在模块中导入pytest,运行pytest.main()方法,即可收集当前模块所在的目录下的所有测试用例,如下图所示,在run_test.py模块下运行main()方法后,可以收集到同一目录下test_login模块的用例。

   

 四、pytest生成测试报告

   pytest支持生成多种格式的测试报告。

  通过pytest-html生成HTML格式的测试报告:

    首先安装pytest-html扩展,两种方法:方法一,terminal命令行输入pip install pytest-html命令;方法二,File >> Settings >>  Project >> Project Interpreter >> 右侧+ >> 搜索pytest-html >> Install Package(注意:一定不要勾选Install to user's site packages directory) 。

    然后使用"--html=测试报告路径+报告名”生成测试报告,可以在命令行输入pytest --html=文件路径+文件名称,或者是在main()方法中指定报告存储位置。

   

 五、pytest 测试用例筛选和管理

  在用例的上方加上@pytest.mark.标签名称(装饰器),运行时指定标签,可以实现测试用例的灵活筛选和管理(使用pytest的装饰器功能,需要引入pytest包)。如,冒烟测试,可以在主流程的测试用例上方标记@pytest.mark.smoke,命令行输入pytest -m "smoke",pytest测试框架将仅运行含有指定smoke标签的用例。

  注意:自定义的标签名称,需要在pytest.ini配置文件中进行注册。pytest配置文件仅支持ini格式(文件名称固定为pytest.ini),section必须设置为pytest,键名称为markers, 值为需要注册的标签名称,如果有多个标签,换行表示。

  

  

   

posted @ 2021-01-10 01:14  大脸猫最爱鱼  阅读(281)  评论(0编辑  收藏  举报