一、pytest单元测试框架 1、什么是单元测试框架: 在软件开发过程中,针对软件的最小单位(函数、方法)进行正确性的检查测试 2、单元测试框架:pytest、unittest 3、主要功能:
- 测试发现:从文件中找出测试用例
- 测试执行:按照一定的顺序去执行
- 测试判断:通过断言判断预期结果和实际结果的差异
- 测试报告:进度、耗时、通过率、生成测试报告
二、单元测试框架和自动化测试框架之间的关系 1、什么是自动化测试框架 为了完成一个项目的自动化而封装的测试代码 2、作用 1.提高测试效率 2.减少人工干预,提高测试准确性 3、POM模式、数据驱动、关键字驱动、断言、日志链接等 报告邮件、selenium、request的二次封装 单元测试框架只是自动化测试框架的组成部分之一
三、关于pytest的特点 1、非常成熟的python的单元框架,并且比unittest更加容易上手 2、pytest可以和selenium、request、qpplum结合实现web自动化、接口自动化、app自动化 3、pytest可以实现测试用例的跳过和reruns失败的测试用例 4、pytest可以和allure生成非常美观的测试报告 5、pytest可以和lenkins持续集成 6、pytest有很多非常强大的插件,并且有很多使用的操作 pytest-html 生成html格式的自动化测试报告 pytest-xdst 测试用例分布式执行,多CPU分发 pytest-ordering 用来改变测试用例的执行顺序 pytest-reruns 测试用例的重跑 7、安装所有的插件 将上述所有命令放在一个在目录中新建的txt文件中,在终端输入: pip install -r 文件名.txt
四、使用pytest默认的测试用例规则以及基础应用 1、文件必须以test_或者_test结尾 2、测试用例(类名)必须以Test*开头,并且不能有init 3、测试方法(方法)必须要以test开头
五、pytest测试用例的运行方式(可以运行一部分用例也可以运行全部用例) 1、主函数模式 运行所有:pytest.main([’-参数’]) 运行指定模块:pytest 参数 测试用例名 pytest main([’-vs’,‘test_login.py’]) 指定目录:pytest main([’-vs’,./interface.testcase’]) 通过nodeid指定用例运行:nodeid由模块名、分隔符、类名、方法名、函数名组成 pytest main([’-vs’,‘./interface.testcase(模块名)::(类名)::方法名’])
2、命令行模式 参数详解: -s 输出用例里面的调试信息 -v 显示更详细的内容 -vs 这两个参数的结合体 -n 支持多线程或者分布式运行 pytest main([’-vs’,./interface.testcase’,’-n=2‘])——两个线程运行,两个线程按顺序执行用例 –reruns:pytest main([’-vs’,./interface.testcase’,’–reruns = 2’]) -x : 只要有一个测试用例错了,测试就停止(了解一下) –maxfull : 只要有一个用例失败就停止测试 -k “ao":选择执行文件名中包含“ao“的部分用例 3、通过读取pytest.ini配置文件来运行 pyteat.ini这个配置文件是pytest测试框架中的核心测试框架 位置:一般放在文件的根目录 编码:必须是ANSI,可以使用notepad++修改编码格式 作用:改变pytest的默认行为 运行规则:不管在什么模式下都会运行这个配置文件
六、pytest执行测试用例的顺序 pytest默认从上到下执行 实际工作中调整执行顺序: 加标记(写法固定):@pytest.mark.run(order = 1)
|