硒上的便利层
rube.core的Python项目详细描述
_ _ __ _ _| |__ ___ | '__| | | | '_ \ / _ \ | | | |_| | |_) | __/ |_| \__,_|_.__/ \___|.core
rube.core是一个方便层 在Selenium之上;其思想是使编写新的集成更加容易 以一种看起来像普通旧的方式对我们的登台基础设施进行测试 单元测试。
rube是由Fedora Infrastructure team开发的。你可以找到 我们在rube.fedora中的基础设施。请随意重复使用 rube.core如您所见。
如果您对运行Fedora Infrastructure Test Suite感兴趣,请 请参阅rube.fedoraREADME。
功能
core为您的测试提供了许多有用的装饰器。
@rube.core.tolerant(n=3)试图运行您的测试。如果成功了,就成功了 没别的了。如果测试失败,它会一次又一次地尝试(直到n 次数,默认为3次)。如果它全部失败n次,则失败是 在测试中报告。如果你的关系不稳定,或者你 要知道,有一个应用程序有时是免费的。
@rube.core.skip_logout()很明显,可能会将您的测试添加到 隐藏的_no_teardown列表。当 时机到了。
@rube.core.expects_zmqmsg(topic, timeout=20000)将导致rube启动 使用zmq.SUB套接字启动后台线程。它将连接到 无论您在setup.cfg中列出了什么样的端点:
[zeromq] tcp://stg.fedoraproject.org:9940
如果消息未在 超时已过,则该测试将失败。在Fedora基础设施中,我们 使用此选项可确保rube在webapps上触发的操作会导致fedmsg消息在登台网关上发布。
@rube.core.ensures_after(callable)将在 测试已经运行,给了它一个引发异常的机会。
常见的用例是定义一个执行shell的可调用 命令。例如,您可以进行硒测试, 帐户系统,并申请虚拟用户在组中的成员身份。之后 测试已经运行,您的可调用程序可以使用paramiko对一台计算机进行ssh,然后 确保该用户现在具有shell访问权限(或其他权限)。
@rube.core.collect_har将收集 网站。你必须做一些额外的工作(包括设置 browsermob代理)以获得此工作。见下文。
运行测试将在x中打开firefox,这有点麻烦 有时候。如果需要,可以通过设置 headless=1在setup.cfg中。这样做需要你 xorg-x11-server-Xvfb通过百胜安装。
正在收集用于性能度量的har文件。
如果启用,rube将把harfile数据输出到harfiles/目录中 collect-har并在setup.cfg的[browsermob]部分指定path到browsermob-proxy 文件。
您还需要手动将pip install browsermob-proxy放入 维图阿列诺夫。注意this patch是必需的 从https站点(比如我们的整个基础设施)收集har文件。
许可证
rube是一个自由软件:你可以根据条款重新发布和/或修改它。 由自由软件发布的GNU通用公共许可证 基金会,许可证的第3版,或(由您选择)以后的任何版本 版本。
rube的发行是希望它会有用,但是没有 保证;甚至没有对商品的适销性或适用性的暗示保证 特定目的。有关更多详细信息,请参阅GNU通用公共许可证。
你应该收到一份GNU通用公共许可证的副本 用卢布。如果没有,请参阅gnu.org/licenses。