Pytest简介
一.Pytest与其它基于python测试框架的区别
unittest:
1.测试文件必须import unittest
2.测试类必须继承unittest.TestCase
3.测试方法必须以test开头
4.不能独立生成测试报表
5.初始化清除方法,只支持到类这一级别
6.用于单元测试,或简单的系统测试
RobotFramework:
1.关键字驱动
2.自带一套语法
3.自带测试报告输出功能
4.自带log定位功能
Pytest:
1.适合场景丰富,功能强大
2.用例的语言也是纯python
3.不能独立生成测试报告,报告需要其它插件来支持
4.支持很多插件
5.不导入pytest模块就可以执行用例
6.可以支持unittest模式的用例
7.测试用例的名称需要以test开头(如果测试用例封装在类里面,类名需以Test开头)
备注:模块的命名要以“test”开头或者“_test.py”结尾
类的命名要以“Test”开头
测试用例的命名要以“test”开头
目录名称可以不以'test'开头
二.安装pytest:pip install pytest
三.简单代码示例:
from api.compare_result import CompareResult
from api.gy import gy_v4
def test_gy1():
inputxml1 = 'C:/Users/cl/checkapi/data/input/recipegy.xml'
outputxml1 = 'C:/Users/cl/checkapi/data/output/recipegy.xml'
cmpr=CompareResult()
cmpr.compareXML(gy_v4,inputxml1,outputxml1)
def test_gy2():
inputxml2 = 'C:/Users/cl/checkapi/data/input/order_gy.xml'
outputxml2 = 'C:/Users/cl/checkapi/data/output/order_gy.xml'
cmpr2=CompareResult()
cmpr2.compareXML(gy_v4,inputxml2,outputxml2)
if __name__ == '__main__':
test_gy1()
test_gy2()
四.pytest-html插件生成测试报告
1.安装插件:pip install pytest-html
2.执行命令:pytest test1.py --html=report.html
如果想让测试报告的样式不丢失,可增加参数--self-contained-html,完整命令如下:pytest test1.py --html=report.html --self-contained-html