硒上的便利层

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]部分指定pathbrowsermob-proxy 文件。

您还需要手动将pip install browsermob-proxy放入 维图阿列诺夫。注意this patch是必需的 从https站点(比如我们的整个基础设施)收集har文件。

许可证

rube是一个自由软件:你可以根据条款重新发布和/或修改它。 由自由软件发布的GNU通用公共许可证 基金会,许可证的第3版,或(由您选择)以后的任何版本 版本。

rube的发行是希望它会有用,但是没有 保证;甚至没有对商品的适销性或适用性的暗示保证 特定目的。有关更多详细信息,请参阅GNU通用公共许可证。

你应该收到一份GNU通用公共许可证的副本 用卢布。如果没有,请参阅gnu.org/licenses

https://www.gnu.org/graphics/gplv3-127x51.png

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用java在linux上编写系统日志   如何在同一个现有变量上多次更改变量的值?(爪哇)   易失性字符串Java   java需要帮助通过PreparedStatement编写适当的搜索查询   JavaMaven项目是否获得其他Maven项目的版本?   java如何在Eclipse中使用Drool应用程序抑制信息和警告调试信息   Java中FileReader和FileInputStream的区别是什么?   java如何为此编写HQL查询?   java方法根本不返回任何内容   VLCJ通过单个java程序控制多个音频文件   java为什么这个println命令不开始一个新行?   java如何创建自己的文件扩展名。odt或。医生?   声明字符串后,java在条件语句中设置int值   通过k8s作业文件将cmd参数传递给docker容器中的java应用程序