pytest是一个python的单元测试框架,使用率比unittest高一些
单元测试框架做什么?
- 测试发现:从多个文件里找到测试用例
- 测试执行:按照规定顺序和规则执行,并生成结果
- 测试判断:通过断言,判断预期结果和实际结果
- 测试报告:统计测试进度、耗时、通过率,生成测试报告
单元测试框架和自动化测试框架有什么关系
- 什么是自动化测试框架?
- 封装自动化基础、管理、统计模块
- 自动化测试框架的作用
- 提高测试效率,降低维护成本
- 减少人工干预,提高测试准确性,增加代码重用性
- 核心思想:让不懂代码的人也能通过这个框架实现自动化测试
- Pytest单元测试框架,和自动化测试框架的关系
- 单测框架是自动化框架的组成部分
- pom设计模式:自动化框架组成部分之一
- 数据驱动、关键字驱动
- 全局配置文件封装
- selenium(一个ui)requests二次封装
- 断言
- 邮件报告
Pytest简介
- 成熟的python单元测试框架,比unittest更灵活和易上手
- 和selenium、requests、appium结合实现web自动化、接口自动化、app自动化
- 实现测试用例跳过、失败重试
- 和allure生成非常美观的测试报告
- 和jenkins持续集成
- 很多强大插件(强大的生态支持),能够实现很多实用操作,例如:
- pytest-html 生成html测试报告
- pytest-xdist 测试用例分布式执行、多cpu并发
- pytest-ordering 改变测试用例执行顺序
- pytest-rerunfailures 失败重试
- allure-pytest 用于生成美观的测试报告
通过添加requirements.txt文件,可以批量安裝
pytest
pytest-html
pytest-xdist
pytest-ordering
pytest-rerunfailures
allure-pytest
Tips:一些关于conda和virtualenv的题外话
- conda具有大型python开发环境管理功能,可以在本地管理多个python环境
- virtualenv以项目为单位管理环境,在每个项目内创建python环境(类似于go语言vendor模式的包管理) 对于公司生产环境的开发,非常建议使用virtualenv,这样的好处在于:
- conda和pip的源不一样,virtualenv使用的源可以直接在生产环境中复用,而conda的不可以
- conda在linux上使用没有windows直观,有较高学习成本
(对于个人开发者,通常建议使用conda)