使用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 字典中 browserName、version、platform 和 javascriptEnabled 键的值。这对于在不同的操作系统、浏览器和版本上运行您的 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。
使用Selenium Webdriver管理浏览器奴隶
如果selenium Python包可用,默认情况下,上述的BusterJSTestCase和测试层支持将使用selenium.webdriver来打开、捕获和清理浏览器奴隶。selenium.webdriver启动浏览器的方式提供了额外的隔离度,避免用户扩展、配置文件、主题和其他插件的影响,为Buster.JS测试提供更大的隔离。
变更日志
0.1 - 2012-09-23
初始版本
项目详情
buster-selenium-0.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1a1e877659613530787ff503dbefb0ae6ecc63502bf3d6260177a60e18c33721 |
|
MD5 | dfbf6fb6058ffcab508b3f7458bceaf5 |
|
BLAKE2b-256 | d07020db49de7a54a553f2d2cef8b25e995cf0e4cfe3c0621a852e488d61c4fb |