一直对网络机器人之类的东西比较感兴趣。可以实现定时登录某站点捞积分,还可以提高测试 Web 站点效率(虽然我目前不做这一块)。我目前了解的有以下几个实现途径:
(1) JavaScript
所有主流浏览器对嵌入 JavaScript 的支持比较一致,对 JavaScript 暴露了 DOM 访问 API 以及浏览器操作 API。所以“JavaScript”这条路比较好走。但由于 JavaScript 不能访问本地文件(安全性考虑)等限制,我无法做“登录某站点后下载某文件”之类的操作。JavaScript 相关的 Web 自动化工具有:
zope.testrecorder:一个跨浏览器 (IE, Firefox, Safari) JavaScript 程序,记录浏览器事件 (点击和输入文字等) 以及测试断言 (这个文本框应包含这个文字,那个复选框应不应被勾选等)。必须安装 Zope 这个 Web Server,再访问 zope.testrocoder 这个组件,然后输入任意 URL 开始记录测试。但是安装和配置 Zope 太麻烦了。需要配合 Selenium(一个开源的 Web 测试框架)或 zope.testbrowser(见下文)使用。
JsUnit:设计为测试静态或生成的 HTML 文档,不能与实际的 Web Server 交互。
(2) 控制浏览器
IE 和 Firefox 都提供了编程接口以便外部程序控制其行为。
MSDN 给出了 IE 的 COM 接口以及 VB 控制 IE 的例子。pywin32 以 Python 包装了 COM 等机制,所以用 Python 操作 IE 也是可行的。PAMIE 对 pywin32 进一步包装,控制 IE 更加方便。关于 Python 的 COM 编程,请参考《Python Programming on Win32》一书。另外该书的 Chapter 21. Active Scripting 还描述了怎样把 Python 嵌入 IE(受限于安全性,嵌入 Python 不允许导入任何模块,所以并不能提供比 JavaScript 更多的功能)。另外注意: IE 7 及以上版本默认不允许 COM 控制,这样打开:Tools --> Internet Options --> Security --> Security for this zone 修改为"Medium"。
XPCOM 是访问 Gecko 库、嵌入或扩展 Gecko 的方法。PyXPCOM 包装了 XPCOM 机制。FireFox 等以 Gecko 作为 Web 排版引擎,所以可以通过 XPCOM 来控制它们。这方面资料较少,我至今还没有在 Google 上发现通过 PyXPCOM 控制 Firefox 的例子。
(3) 模拟浏览器
浏览器的重定向、表单和 Cookie 等行为比较好模拟,但 Frame、DOM 访问、JavaScript 和 JavaApplet 等就越来越难模拟了。以下按照模拟能力降序排列:
HttpUnit(Java 实现,配合 JUnit):支持基本 HTTP 认证、简单的 JavaScript。
zope.testbrowser 是一个 Zope 组件但可脱离 Zope 单独使用。支持简单 DOM (含表单)、Cookie、定制 HTTP 请求。
WebUnit(Python 实现,配合 PyUnit):DOM 方面仅支持表单,其他能力与 zope.testbrowser 相当。
twill(Python 实现):模拟能力与 WebUnit 相当。
Python 3 标准模块 urllib(基于更底层的 http.client 模块)和 http.cookiejar 等配合起来支持基本的定制 HTTP 请求、Cookie。标准模块 html.parser 解析 HTML,可能需要 python-utidylib 做 HTML 整理。
(4) 宏记录鼠标点击坐标和时间然后重放
这个方法受 Web 页变化影响很大,且测试逻辑不明确,所以这方式的测试用例几乎无法维护。许多商业的 Web 测试软件就是这一类。
分享到:
相关推荐
ChromeDriver作为Chrome浏览器的控制器,允许测试脚本与浏览器进行通信,模拟用户行为,如点击、输入、导航等,从而实现Web应用的自动化测试。 要开始使用ChromeDriver进行自动化测试,首先需要下载与你的Chrome...
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
1. Web测试基础:介绍Web自动化测试的基本概念,包括“录制+重放”的工作原理,以及如何针对HTTP协议构建测试。 2. 定制抽象规则和验证规则:学习如何自定义测试规则,确保测试能准确地反映应用程序的行为,并验证...
简化队长chrome类介绍: 队长chrome类本来是简化...目前3种控制浏览器自动化测试的3种组合方式, 1.队长浏览器类和队长标签页类组合(总有一种方式适合你的), 2.队长浏览器_*子程序命令和队长标签页类组合, 3.队长chome类
开发者可以利用Safari Web Inspector等工具,结合谷歌浏览器的自动化特性,进行深入的前端调试和性能分析。 值得注意的是,这个自动化测试版不会自动更新,这意味着测试环境将保持在113.0.5672.0这个特定版本,直到...
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
ChromeDriver是Google Chrome浏览器自动化测试的关键工具,它与Selenium WebDriver接口相集成,使得开发者和测试工程师能够控制和自动化Chrome...了解和掌握如何正确使用ChromeDriver是提升Web测试自动化能力的关键。
而Selenium2(也称为Selenium WebDriver)则是Python中广泛使用的网页自动化测试工具,它可以模拟用户的真实操作,对网页进行各种交互,如点击、输入、导航等,适用于Web应用的功能测试。 Selenium2的核心在于...
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
自动化测试允许测试团队编写脚本,这些脚本可以模拟真实用户与Web应用的交互,例如登录、浏览、搜索和提交表单。这些测试脚本可以被反复运行,而且通常在每次代码提交后都会自动执行,以确保新引入的更改没有破坏...
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化
在产品管理平台的WEB测试中,QTP的应用可以帮助团队快速发现和修复问题,缩短测试周期,从而提高产品质量,降低维护成本。通过实践案例,初学者可以更好地理解和掌握QTP的基本操作和高级功能,从而提升自动化测试的...
【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化