跳转到主要内容

使用selenium管理buster.js从属浏览器。

项目描述

Buster.js Selenium和Python测试集成

此包为Buster.js服务器和测试运行器提供了包装器,这些包装器集成了selenium的部分功能,用于控制捕获Buster从属服务器。它还提供了运行Buster.js测试作为Python测试套件一部分的包装器,并与zope.testrunner进一步集成,以进行测试发现和测试层,以控制buster-server并捕获Buster.JS浏览器从属服务器。

管理buster-server和捕获浏览器从属服务器

buster_selenium.case.BusterJSTestCase类是unittest.TestCase的子类,可以用于创建将运行与一个buster.js测试配置对应的Buster.JS测试套件的Python测试用例。

>>> from buster_selenium import case
>>> def suite():
>>>     suite = unittest.TestSuite()
...     suite.addTest(
...         case.BusterJSTestCase('/path/to/buster.js'))
...     return suite

测试用例将启动 buster-server,启动浏览器,并在测试的 setUp 中捕获一个浏览器从属。然后,它将调用 buster-test 并传递 buster.js 配置文件,如果 buster-test 以状态码 1 退出,则会报告失败;如果以任何其他非零状态码退出,则会报告错误。最后,它将关闭浏览器从属和 buster-server

BusterJSTestCase 类使用几个环境变量来控制如何调用 buster-test 可执行文件以及如何处理其输出。

BUSTER_TEST_EXECUTABLE

如果已定义,此变量的值将用作运行测试时使用的 buster-test 可执行文件的路径。如果您将 Buster.JS 作为构建/部署环境的一部分进行安装/构建,这很有用。如果没有定义此变量,则将使用 PATH 中第一个找到的 buster-test

BUSTER_TEST_OPTIONS

如果已定义,此变量的值将传递给 Python 的 shlex.split,并将其作为参数/选项传递给 buster-test 可执行文件。例如,这可以用来使用不同的 buster-test –report 选项。

BUSTER_TEST_STDOUT

如果已定义,则将 buster-test 可执行文件的 stdout 输出写入此文件。

BUSTER_SERVER_EXECUTABLE

类似于 BUSTER_TEST_EXECUTABLE,如果已定义,则提供的路径将用作 buster-server 可执行文件的路径。否则,将使用 PATH 中找到的第一个 buster-server

BUSTER_SLAVE_BROWSER_EXECUTABLE

如果已定义,则提供的路径中的可执行文件将作为从属浏览器调用,并由先前启动的 buster-server 捕获。如果可用的 selenium.webdriver 包,则设置此值将覆盖通过 Selenium 捕获浏览器从属的默认行为。

BUSTER_SLAVE_BROWSER_OPTIONS

如果已定义,则此变量的值将传递给 Python 的 shlex.split,并将其作为参数/选项传递给 BUSTER_SLAVE_BROWSER_EXECUTABLE 可执行文件。

BUSTER_SLAVE_SELENIUM_DRIVER

如果 selenium.webdriver 包可用且已设置此变量,则将使用其值从 selenium.webdriver Python 模块 获取 Selenium 驱动程序。默认情况下使用 Firefox

BUSTER_SLAVE_SELENIUM_ARGS

如果已定义,则此变量的值将传递给 Python 的 shlex.split,并将其作为位置参数传递给 selenium.webdriver 使用。

BUSTER_SLAVE_SELENIUM_GRID_BROWSERNAME, BUSTER_SLAVE_SELENIUM_GRID_VERSION, BUSTER_SLAVE_SELENIUM_GRID_PLATFORM, BUSTER_SLAVE_SELENIUM_GRID_JAVASCRIPTENABLED

如果使用 Selenium Grid 并设置 BUSTER_SLAVE_SELENIUM_DRIVER=Remote 以及定义此变量,则这些值将用于修改 selenium.webdriver.DesiredCapabilities 字典中 browserNameversionplatformjavascriptEnabled 键的值。这对于在不同的操作系统、浏览器和版本上运行您的 buster 测试很有用。

Buster.JS 测试发现

“buster-selenium”包提供了一个名为“buster-testrunner”的控制台脚本,它可以将Buster.JS测试的发现功能添加到对zope.testrunner的支持中,以自动在整个项目中查找测试。特别是,它会从任何在有效的buster-testrunner --test-path下的目录创建测试套件,只要这些目录包含一个buster.js文件。

$ buster-testrunner --test-path=/path/to/project/module --test-path=/path/to/project/other-module

有关控制测试发现和运行哪些测试的详细信息,请参阅zope.testrunner文档或使用buster-testrunner --help

在测试之间共享buster-server和浏览器奴隶捕获

buster_selenium.layer模块使用zope.testrunner测试层的支持来启动buster-server、打开浏览器、捕获浏览器奴隶,并在使用buster-testrunner运行测试时使用这些资源。这可以在提供对buster-server和捕获的浏览器奴隶的清洁管理的同时,帮助加速多个Buster.JS测试套件的运行。

使用Selenium Webdriver管理浏览器奴隶

如果selenium Python包可用,默认情况下,上述的BusterJSTestCase和测试层支持将使用selenium.webdriver来打开、捕获和清理浏览器奴隶。selenium.webdriver启动浏览器的方式提供了额外的隔离度,避免用户扩展、配置文件、主题和其他插件的影响,为Buster.JS测试提供更大的隔离。

变更日志

0.1 - 2012-09-23

  • 初始版本

项目详情


下载文件

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

源代码分发

buster-selenium-0.1.tar.gz (7.5 kB 查看散列)

上传时间 源代码

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面