非常好用,绝对未来黑马的 Python 开源测试框架 PySimpleTest
简单介绍
PySimpleTest 是一个非常简洁开源的python代码测试框架,作者是 https://github.com/Time-Coder?tab=stars
你可以在以下网站找到PyPI索引:https://pypi.org/project/PySimpleTest/
如果你正在为在rotot框架中写一个简单的for循环而苦恼,或者你正在为弄清楚如何在PyTest中调用fixture而苦恼的话,那么这个框架便是你最需要的。 PySimpleTest使用非常原生的Python语法和逻辑,让测试代码变得非常容易,其非常适合小型的测试项目。它有以下几个优点。
- 使用本地的Python编译器(不像pytest或robot框架),因此其非常容易安装和使用,并且没有繁杂的依赖。
- 只提供函数,没有类、fixture、装饰器或其他奇怪的东西,仅仅通过函数来实现所有的测试需求。
- 提供简单易用的断言系统,如should_become_true, should_keep_true。
- 提供非常好用的日志系统。你可以使用section, subsection, …来组织你的测试报告。
- 提供许多测试助手功能,如 "wait"带GUI进度条,“say” 来展示的字符串。
- 提供手动操作请求功能的函数,如 please 和 please_check。
- 有颜色的cmd输出,表示失败、通过、错误等。
- 带有链接信息的日志文件。如果你使用Sublime这样的编辑器,可以实现双击测试报告行,跳转到相应的代码。
简单应用
例如如下代码:
import PySimpleTest as pst
a = 2
pst.should_be_equal(a, 2)
pst.should_be_less(a, 1)
你将会得到如下输出,简洁明了,并且cmd输出都是着色的状态,非常直观和美观:
优点展示
断言功能
其提供了很多可以直接利用的函数,支持基本上所有的断言需求。
should_be_true(expression)
:
Ifexpression
is True, it will print “Pass: () is True” and log in three output files. Else “Fail: () is False” will be printed and logged.should_be_false(expression)
: Pass whenexpression
is False.should_be_equal(value1, value2)
: Pass whenvalue1 == value2
.should_not_be_equal(value1, value2)
: Pass whenvalue1 != value2
.should_be_less(value1, value2)
: Pass whenvalue1 < value2
.should_not_be_less(value1, value2)
: Pass whenvalue1 >= value2
.should_be_greater(value1, value2)
: Pass whenvalue1 > value2
.should_not_be_greater(value1, value2)
: Pass whenvalue1 <= value2
.should_be_approx(value1, value2, tolerance = 5, func = abs)
: Pass whenfunc(value1-value2) <= tolerance
.should_not_be_approx(value1, value2, tolerance = 5, func = abs)
: Pass whenfunc(value1-value2) > tolerance
.should_keep_true(expression, duration)
: Pass whenexpression
keeps True forduration
seconds. Try following example:
可以看出,上面的函数真的是所见即所得,会点英语的基本上都能看得懂这些函数是什么意思,怎么用。
日志系统记录功能
其日志系统可以生成测试报告,并且可以通过代码来控制报告的章节分布等。
比如如下所示的代码:
section("Test eval function")
section("eval single value", level = 2)
should_be_equal(eval("1"), 1)
should_be_equal(eval("1.2"), 1.2)
should_be_equal(eval("-3.6"), -3.6)
should_be_equal(eval("True"), True)
section("eval math expression", level = 2)
should_be_equal(eval("3 + 5*2"), 13)
should_be_equal(eval("(6-2)*5"), 20)
其生成的结果如下:
测试报告头部/尾部信息控制功能
这个框架可以定制报告的头部和尾部,并且对基本的测试结果进行汇总。
测试程序运行进程显示和提示功能
令我惊讶的是,其可以通过代码配置,仅仅几行代码便可以进行测试程序的进程显示,或者对某些手动的操作进行一些提示和等待。比如说对硬件进行测试,可能需要在测试程序执行到某些位置的时候,需要人工去拨动一个开关,那么程序在这个过程中是需要进行一个等待操作。而这个框架便可以弹出提示框对测试者进行有效提示,甚至进行声音提示!!!!
我已经迫不及待地想要将我的所有测试代码都转为使用这个框架了,绝对的YYDS,软硬件测试的终极杀器啊!