我正在开发一个 node.js 守护进程,它提供一个 html 页面(启用 ajax),它通过 web 表单上传(基于 html5 的)文件,该守护进程还处理与相关的所有 PUT、POST、OPTIONS 和 GET 请求文件上传和状态查询(不一定来自它服务的网页,任何客户端都可以通过http交互)
我想通过将服务器本身(例如它是 node.js 的事实)视为黑匣子来以编程方式测试一大堆东西。
输入如下:
- json 配置文件中不存在、为空或各种类型(不正确)的配置值
- 使用不同的命令行参数运行程序
- 与网页交互(导航到它,单击按钮,从文件选择对话框中选择特定文件,单击确定等,这将在后台导致许多 http 请求)
- 以编程方式执行“原始”http请求
然后通过以下方式验证事物的行为是否符合预期:
- 在日志文件中查找条目
- 检查 $num 的进程是否(仍在)运行
- 检查所有请求的 http 响应代码。(包括后台的所有ajaxy-one,或对测试中定义的单个请求的响应)
- 任意命令(例如从网络服务器下载文件并对其进行 md5summing)
我一直在寻找一些选择:
- cucumber 经常出现这种话题,但似乎很冗长,而且太针对商务人士。
- httpunit 似乎假设系统正在使用一种特定配置运行
- rspec 似乎是用于白盒测试红宝石
- vows 太基础了,没有浏览器自动化
如果有人有建议,我将不胜感激
谢谢迪特