第一种:Pytest(一)-快速入门和基础讲解

一.前言

1.目前有两种纯测试的测试框架,Pytest和Unittest2.Unittest应该是广为人知,而且也是老框架,很多人都用来做自动化,无论是UI还是接口3.Pytest是基于Unittest开发的另一款更高级更好用的单元测试框架4.出去面试也好,跟别人说起来也好,Pytest的逼格明显高于Unittest

二.为什么要用Pytest

1.非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考2.能够支持简单的单元测试和复杂的功能测试3.支持参数化4.执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败5.支持重复执行(rerun)失败的case6.支持运行由 nose,Unittest编写的测试case7.可生成html报告8.方便的和持续集成工具Jenkins 集成9.可支持执行部分用例10.具有很多第三方插件,并且可以自定义扩展

三.安装Pytest

1.cmd运行安装
pip install-U pytest pip3 install pytest-i http://pypi.douban.com/simple/--trusted-host pypi.douban.com
2.查看版本
pytest--version

四.Pytest开始使用

# -*- coding: utf-8 -*-deffunc(x):returnx+1deftest_answer():assertfunc(3)==5classTestClass:deftest_one(self):x="this"assert"h"inxdeftest_two(self):x="hello"asserthasattr(x,"check")
1.然后,cmd进入当前文件目录,直接执行:pytest

2.说明
2.1.如果只执行"pytest",会查找【当前目录及其子目录下】以"test_*.py或*_test.py"文件,找到文件后,在文件中找到以"test开头函数"并执行2.2.如果"只想执行某个文件":pytest start.py2.3.加上"-q",就是显示简单的结果:pytest-q start.py

五.Pytest用例的设计原则

1.用Pytest写用例时候,一定要按照下面的规则去写,"否则不符合规则的测试用例是不会执行的"
1.1.文件名以"test_*.py"文件和"*_test.py"文件1.2."test_"开头的函数1.3."Test"开头的类,不能包含"__init__"方法1.4."test_"开头的类里面的方法1.5.所有的包"package"必须要有"__init__.py"文件

六.Pytest执行用例规则

1.注意:下面讲的都是在"cmd"中执行"pytest"命令
2.某个目录下所有的用例
pytest
3.执行某一个"py"文件下用例
pytest 脚本名称.py
4.运行"start.py"模块里面的某个函数,或者某个类,某个类里面的方法4.1."v"和不加"-v"都可以,加"-v"的话,打印的信息更详细
pytest-v 08_mark.py::TestClass::test_method pytest 08_mark.py::TestClass::test_method pytest start.py::test_answer
5.运行"start.py"模块里面,测试类里面的某个方法
pytest start.py::TestClass::test_two
6.-m 标记表达式(后续讲解)
pytest-m login
6.1.将运行用"@pytest.mark.login装饰器"修饰的所有测试,后面再展开讲标记
7.-q:简单打印,只打印测试用例的执行结果
pytest-q start.py
8.-s:详细打印
pytest-s start.py
9.-x:遇到错误时停止测试
pytest start.py-x
10.—maxfail=num:当用例错误个数达到指定数量时,停止测试
pytest start.py--maxfail=1
11.-k:匹配用例名称
11.1.执行测试用例名称包含http的所有用例 pytest-s-k http start.py
12.-k:根据用例名称排除某些用例
pytest-s-k"not http"start.py
13.-k:同时匹配不同的用例名称
pytest-s-k"method or weibo"start.py
14.-k:同时匹配相同的用例名称
pytest-s-k"method and weibo"start.py

七.Pycharm运行Pytest

1.在Pycharm写代码,怎么可能一直用cmd来跑用例呢?,现在就来看看在Pycharm中如何运行Pytest
1.1.首先,先要去settings【文件-设置】里面设置单元测试框架为Pytest1.2.如果是"nosetests"的话,右键运行是以"python脚本"运行的1.3.如果设置"unittest",则是以"unittest框架"去运行