Python 单元测试

简介: Python 单元测试

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:

  • 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  • 能够支持简单的单元测试和复杂的功能测试
  • 支持参数化
  • 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
  • 支持重复执行失败的case
  • 支持运行由nose, unittest编写的测试case
  • 具有很多第三方插件,并且可以自定义扩展
  • 方便的和持续集成工具集成

安装 pytest 包

pip install pytest

安装 pytest-cov 包 (此插件生成覆盖率报告)

pip install pytest-cov

安装 pytest-html 包 (用于生成HTML报告的pytest插件)

pip install pytest-html

终端查看单元测试覆盖率

py.test --cov=test/

生成 HTML 测试覆盖率报告

pytest --html=report.html

在 test(测试文件) 目录下执行 pytest 查看效果

gyw@gyw:~/Desktop/code/project/xxxxxx/src/backend$ py.test --cov=test/
=========================== test session starts =====================================
platform linux -- Python 3.5.2, pytest-3.0.7, py-1.4.34, pluggy-0.4.0
metadata: {'Platform': 'Linux-4.10.0-37-generic-x86_64-with-Ubuntu-16.04-xenial', 'Packages': {'py': '1.4.34', 'pluggy': '0.4.0', 'pytest': '3.0.7'}, 'Python': '3.5.2', 'Plugins': {'metadata': '1.5.0', 'cov': '2.5.1', 'html': '1.16.0'}}
rootdir: /home/gyw/Desktop/code/project/xxxxxx/src/backend, inifile:
plugins: metadata-1.5.0, html-1.16.0, cov-2.5.1
collected 4 items 
test/test_exampl.py .
test/test_monitor.py .
test/test_run.py .
test/test_workers.py .
----------- coverage: platform linux, python 3.5.2-final-0 -----------
Name                               Stmts   Miss  Cover
------------------------------------------------------
test/__init__.py                       0      0   100%
test/interactive/__init__.py           1      0   100%
test/interactive/backend.py           11     11     0%
test/interactive/fib.py                3      1    67%
test/interactive/frontend.py          17     17     0%
test/interactive/monitor_test.py      10      5    50%
test/test_exampl.py                   38      3    92%
test/test_monitor.py                  62     10    84%
test/test_run.py                       4      0   100%
test/test_workers.py                  90     15    83%
------------------------------------------------------
TOTAL                                236     62    74%
=========================== 4 passed in 20.61 seconds =========================
gyw@gyw:~/Desktop/code/project/xxxxxx/src/backend$ pytest --html=report.html
=========================== test session starts ================================
platform linux -- Python 3.5.2, pytest-3.0.7, py-1.4.34, pluggy-0.4.0
metadata: {'Plugins': {'metadata': '1.5.0', 'cov': '2.5.1', 'html': '1.16.0'}, 'Python': '3.5.2', 'Packages': {'py': '1.4.34', 'pluggy': '0.4.0', 'pytest': '3.0.7'}, 'Platform': 'Linux-4.10.0-38-generic-x86_64-with-Ubuntu-16.04-xenial'}
rootdir: /home/gyw/Desktop/code/project/xxxxxx/src/backend, inifile:
plugins: metadata-1.5.0, html-1.16.0, cov-2.5.1
collected 4 items 
test/test_exampl.py .
test/test_monitor.py .
test/test_run.py .
test/test_workers.py .
------ generated html file: /home/gyw/Desktop/code/project/xxxxxx/src/backend/report.html ------
============================= 4 passed in 31.82 seconds =======================
参考资料

www.cnblogs.com/landhu/p/74…

www.cnblogs.com/landhu/p/74…







目录
相关文章
|
19天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
29 4
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
130 5
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
154 3
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
117 2
|
29天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
84 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
7天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
54 3
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
47 1
|
1月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
71 4