跳转到主要内容

在selenium之上的便利层

项目描述

            _
 _ __ _   _| |__   ___
| '__| | | | '_ \ / _ \
| |  | |_| | |_) |  __/
|_|   \__,_|_.__/ \___|.core

rube.core 是在selenium之上的便利层;想法是使编写新的集成测试更容易,这些测试看起来像正常的旧单元测试。

Rube是由Fedora基础设施团队开发的。您可以在rube.fedora中找到我们基础设施的测试。请随意根据需要重用rube.core

如果您对运行Fedora基础设施测试套件感兴趣,请参阅rube.fedoraREADME

功能

rube.core为您的测试提供了一些有用的装饰器。

  • @rube.core.tolerant(n=3)会尝试运行您的测试。如果成功,则不再执行任何操作。如果测试失败,它会不断尝试(默认最多3次)。如果连续失败n次,则会在测试中报告失败。如果您连接不稳定,或者知道某个应用有时会有问题,这很有用。

  • @rube.core.skip_logout()显然会将您的测试添加到隐藏的_no_teardown列表中。在需要时,tearDown方法将跳过它。

  • @rube.core.expects_zmqmsg(topic, timeout=20000)将导致rube启动一个带有zmq.SUB套接字的背景线程。它将连接到您在setup.cfg中列出的任何端点,如下所示

    [zeromq]
    tcp://stg.fedoraproject.org:9940

    如果在超时之前没有收到具有指定多部分前缀的消息,则该测试将失败。在Fedora基础设施中,我们使用此功能确保由rube在web应用上触发的操作会在我们的预发布网关上发布fedmsg消息。

  • @rube.core.ensures_after(callable)将在您的测试运行后调用callable,给它一个抛出异常的机会。

    最常见的用法是定义一个执行shell命令的可调用对象。例如,您可能有一个selenium测试,该测试会访问一个账户系统并申请一个虚拟用户的组成员资格。在该测试运行后,您的可调用对象可以使用paramiko通过ssh连接到一台机器并确保该用户现在有shell访问权限(或类似功能)。

  • @rube.core.collect_har将收集您网站的HAR性能数据。为了实现这一点,您需要做一点额外的工作(包括设置browsermob-proxy),如下所示。


运行测试将在X中打开Firefox,这有时会有些麻烦。如果您愿意,可以在setup.cfg中将headless=1设置为无头模式运行测试。但是,这样做需要您通过yum安装xorg-x11-server-Xvfb


收集HAR文件以获取性能指标。

如果启用了collect-har并指定了setup.cfg文件中[browsermob]部分中browsermob-proxy的路径,Rube将输出harfile数据到harfiles/目录。

您还需要手动在您的虚拟环境中pip install browsermob-proxy。请注意,需要此补丁才能从https站点(如我们整个基础设施)收集HAR文件。

作者

许可证

Rube是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何较新版本。

Rube 在分发时是希望它是有用的,但没有任何保证;甚至没有关于商品性或特定用途适用性的隐含保证。有关更多详细信息,请参阅 GNU 通用公共许可证。

您应该已收到 Rube 一起的 GNU 通用公共许可证副本。如果没有,请参阅 gnu.org/licenses

https://gnu.ac.cn/graphics/gplv3-127x51.png

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

rube.core-0.1.2.tar.gz (21.3 kB 查看散列)

上传时间

由以下支持