首页 > 其他 > 详细

pytest学习指南(一)

时间:2020-03-17 12:10:38      阅读:59      评论:0      收藏:0      [点我收藏+]

前言

              生命不息,奋斗不止。

              对于日常使用python的通用框架unittest+HTMLTestRunner来说,再学习一个新框架主要是为了脱离python鄙视链,O(∩_∩)O哈哈~

               python鄙视链:pytest 鄙视 > unittest 鄙视 > robotframework 鄙视 > 记流水账 鄙视 > "hello world"小白

 

一、pytest介绍             

pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:

  • 1、简单灵活,容易上手,文档丰富;
  • 2、支持参数化,可以细粒度地控制要测试的测试用例;
  • 3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
  • 4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
  • 5、测试用例的skip和xfail处理;
  • 6、可以很好的和CI工具结合,例如jenkins
  • 7、能自动的发现测试模块和测试方法
  • 8、断言使用assert+表达式即可

二、pytest环境搭建

官方手册地址  https://docs.pytest.org/en/latest/getting-started.html#install-pytest

 

 1.安装pytest

  

pip install pytest

pytest --version   #查看安装的版本  验证是否安装成功

2.安装html报告插件

pip install pytest-html

除开 pytest-html插件外 ,pytest还具备丰富的插件库

pytest插件汇总站点:http://plugincompat.herokuapp.com/

 

三、应用案例

编写规则

编写pytest测试样例非常简单,只需要按照下面的规则:

  • 测试文件以test_开头(以_test结尾也可以)
  • 测试类以Test开头,并且不能带有 init 方法
  • 测试函数以test_开头
  • 断言使用基本的assert即可

 1、创建一个文件为:test_demo.py

    

#!/usr/bin/python3
# -*- coding: utf-8 -*-
def test_1():
    assert 1==1

 

 2.运行

  运行有两种方式 

  第一种,通过dos命令或者pycharm的命令窗口输入pytest

 结果如下:

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

(venv) E:\学习\pytest_code>pytest
============================================================ test session starts ============================================================
platform win32 -- Python 3.6.5, pytest-4.5.0, py-1.8.0, pluggy-0.12.0
rootdir: E:\学习\pytest_code
collected 1 item

test_demo.py .                                                                                                                         [100%]

========================================================= 1 passed in 0.02 seconds ==========================================================

 

  注意:1.只输入pytest命令时,默认对当前项目目录下查找符合命名规则的case。

             2.可以输入 pytest  文件名  指定执行某一个文件中case

 

     

 

 第二种:通过主函数在代码中运行,注意:需要导包
 
 
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pytest
def test_1():
    assert 1==1

if __name__ == __main__:
    pytest.main()

 

 
 
 
 

pytest学习指南(一)

原文:https://www.cnblogs.com/hn-daxiong/p/12508100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!