英文原帖地址:SprocketMonkey - (in)finite monkey theorem about Sprocket | Web Apocrypha
Web 浏览器可以从许多不同的角度进行测试。可以测试性能、响应、页面布局的准确性,乃至不同用户交互操作下的网站行为。
如果您阅读了我们的上一篇博客,就可能了解我们有一个 Web 浏览器项目,名为 Sprocket。虽然基本组件(例如Content API)已经过全面测试,但我们希望利用其他测试框架,通过猴子测试 (monkey testing) 来改善测试流程。猴子测试是最常见的黑盒测试方法之一,其原理是向程序中提供随机输入,以便发现错误行为。
已实施的测试框架 Selenium 特别适合浏览器或 Web 应用程序的黑盒测试,在该测试框架的帮助下,可轻松自动执行猴子测试。Selenium包含两部分:客户端和服务器。客户端部分称为 Selenium 客户端驱动程序,而服务器部分称为 webdriver。
由 Selenium 驱动的测试需要用到Selenium客户端驱动程序的 API,API提供许多语言支持:Java、Python、Ruby、Javascript (Node)、C#。Webdriver 在整个过程中具有重要的作用。它可以被视为中间人,因为它将客户端的调用重定向到浏览器,再将浏览器结果返回到客户端。此外,webdriver 也是 API,针对最常见浏览器有不同的实现,例如:FirefoxDriver、ChromeDriver、SafariDriver 等。Sprocket 基于Content API 构建,所以它采用 ChromeDriver(属于 Chromium 项目的一部分)。Sprocket 的 Linux 版本适用于开箱即用的正式 ChromeDriver,我们也可以通过 Sprocket 的 Android 版本进行猴子测试,方法是向原始 ChromeDriver 中添加一个简单的补丁。有关该补丁和编译说明,可参阅 Sprocket 的测试分支。借助这些更改及 Python API 的帮助,我们即可推出 SprocketMonkey。
如果希望了解详细信息,还可以查看我们如何向浏览器中添加了对 Chromium 开发者工具的支持。另外,如果要试用该工具,以下示例显示了如何在 Linux 上通过 Selenium 的 Python API 连接到 Sprocket。
首先,ChromeDriver 应在您的路径当中。启动 Python 命令解释程序:
>>> from selenium import webdriver
>>> options = webdriver.ChromeOptions()
>>> options.binary_location = '/path/to/sprocket'
>>> driver = webdriver.Chrome(chrome_options=options)
现在应显示一个空 Sprocket 窗口。要加载网页,请执行:
>>> driver.get('url') #the URL should be given with the http:// prefix
然后,可从许多选项开始操作。此处提供导航、表单填写等操作的简单概述。在此链接下,可以阅读有关 WebDriver API 的更多详细信息。
您可以查看 SprocketMonkey 如何在 Linux 和 Android 平台上处理与 WebDriver 的连接。目前,SprocketMonkey 支持以下操作:
如果对此感兴趣,请在您的网站/Web 应用程序中试用 SprocketMonkey!
祝您测试愉快!
Sprocket 团队代表
Edit Balint