用于构建自动化集成检查的工具包
questions-three的Python项目详细描述
问题三
为严肃的软件审问者(以及愚蠢的审问者)提供的库
Stop! Who would cross the Bridge of Death must answer me these questions three, ere the other side he see.
--守门员
为什么要这样
对自动化软件测试的绝大多数支持主要分为两类:一类是指导设计并在编写代码时保持对代码控制的低级单元测试工具,另一类是在单元集成后减少人工测试人员工作量的高级系统测试工具。
第一组优化了精度和速度。一个好的单元测试只证明了毫秒内的一个点。第二组优化了人力资源的有效使用,使测试人员能够重复繁琐的操作,而不需要太多(或任何)编码工作。
工程就是要权衡取舍。我们可以减少编码工作,但前提是我们愿意牺牲控制权。这使得现有的高级测试自动化工具对那些倾向于反向贸易的测试者来说显然是不令人满意的:更多的控制以交换自动化的需要作为^ {EM1}真诚的“EEM>软件开发项目”。
^ {STR 1 } $如果你想要完全控制你的系统级自动化测试,并且愿意在你的指甲下面交换一些代码污垢,那么问题三可以是你最好的朋友。< /强>作为一个灵活的库,而不是一个固执己见的框架,它将支持你而不必命令结构或规则。它的功能是为了协同工作而设计的,但是您可以单独使用它们,甚至可以将它们集成到您选择的第三方或自行开发的框架中。
盒子里有什么
scaffolds帮助您构建测试。从库中选择一个或将其用作示例来构建自己的库。
reporters提供各种读取器预期的结果。尽可能多地使用或者尽可能少地使用,或者遵循设计模式并构建自己的。
event broker它允许组件在不了解彼此的情况下协同工作。需要整合一种新的记者吗?只需联系代理并订阅相关事件。不用碰别的东西。
http客户端跟踪自己的活动并将失败转换为有意义的测试报告工件。
webdriver集成有助于兼容性测试,并使selenium webdriver成为问题3事件驱动世界的完整公民。
vanilla函数对于测试非常有用,并且完全独立。想用多少就用多少。
提供的“测试脚本”脚手架帮助您编写包含一个或多个测试的测试套件。
安装问题3
pip install questions-three
编写测试
from questions_three.scaffolds.test_script import test, test_suite
with test_suite('ExampleSuite'):
with test('A passing test'):
assert True, 'That was easy'
运行测试
无需特别执行人。只需运行脚本:
python example_suite.py
检查结果
控制台输出应如下所示:
2018-08-13 14:52:55,725 INFO from questions_three.reporters.event_logger.event_logger: Suite "ExampleSuite" started
2018-08-13 14:52:55,726 INFO from questions_three.reporters.event_logger.event_logger: Test "A passing test" started
2018-08-13 14:52:55,726 INFO from questions_three.reporters.event_logger.event_logger: Test "A passing test" ended
2018-08-13 14:52:55,729 INFO from questions_three.reporters.event_logger.event_logger: Suite "ExampleSuite" ended
还应该有一个包含报表的报表目录:
> ls reports
ExampleSuite.xml jenkins_status
examplesuite.xml是一个junit xml格式的报表,许多报表解析器(包括jenkins ci)都可以使用它。它由junit_reporter模块生成。
jenkins_status是一个纯文本文件,它将所有测试套件的结果从一个批集中到一个jenkins可以显示的结果中。它由jenkins_build_status模块生成。