pytest是python的一种单元测试框架,在自动化测试中充当测试执行的功能。
相比于自带的unitTest框架,pytest使用起来更简洁,效率更高
pytest支持参数化,unitTest不支持(uintTest要使用插件才能支持参数化)
pytest支持重复执行失败的case(安装插件可以实现)
pytest能兼容unitTest的脚本,即unitTest的代码能直接在pytest上执行,反之不行。
官方文档Full pytest documentation - pytest documentation
插件库 Pytest Plugin List - pytest documentation
pytest的安装
与unitTest不同的是,pytest需要安装才能使用,unittest不需要
1.使用命令安装:pip install -i Simple Index pytest
2.确认版本pytest --version
注意:如果发现pytest命令无法使用,需要重新以管理员的身份安装一下pytest
也可以查看下python目录下的Scripts文件是否有pytest的可执行文件,没有的话,需要重新以管理员的身份安装一下pytest
拓展:查看命令 pip show pytest
pytest基本使用
1.函数形式
函数名必须以test开头
如果直接使用右键运行,会被当做普通的代码执行,不会输出print内容。因为当前函数没有被调用
所以要运行这段代码,需要在终端命令行运行
在终端命令行输入命令 pytest -s 文件名,回车 (-s代表输出打印内容)
2.测试类的形式
定义测试类名必须以Test开头,类中的方法名也必须以test开头
运行方法同上
3.主函数的形式执行
基本语法 pytes.main(['-s','文件名.py'])
注意:pytest要导包
文件名可以通过在文件名右键选择 copy path快速复制
4.特殊方法_函数级数
setup_method 开始方法
teardown_method 结束方法
说明:方法名是固定写法,没有代码提示,需要手写
执行顺序:开始方法-->测试方法1--->结束方法 开始方法-->测试方法2-->结束方法
注意:pytest7.2版本以后,setup和teardown改为了setup_method和teardown_method
5.类级别
类开始方法 setup_class
类结束方法 teardown_class
执行顺序:setup_class-->测试方法1-->测试方法二-->teardown_class
6.类级别和函数级别同时使用
执行顺序:类级别开始-->函数级别开始-->测试方法1-->函数级别结束-->函数级别开始-->测试方法2-->函数级别结束-->类级别结束