Testing 在各种配置中测试守护进程的黑盒行为

Testing 在各种配置中测试守护进程的黑盒行为,testing,daemon,Testing,Daemon,我正在开发一个node.js守护程序,它提供一个html页面(支持ajax),该页面通过Web表单上传(基于html5)文件,守护程序还处理与文件上传相关的所有PUT、POST、OPTIONS和GET请求,并查询状态(不一定来自它所服务的网页,任何客户端都可以通过http进行交互) 我想通过将服务器本身(比如node.js)视为一个黑盒子,通过编程测试一大堆东西 输入如下: json配置文件中不存在、为空或各种类型(不正确)的配置值 使用不同的命令行参数运行程序 与网页交互(导航到该网页,单击

我正在开发一个node.js守护程序,它提供一个html页面(支持ajax),该页面通过Web表单上传(基于html5)文件,守护程序还处理与文件上传相关的所有PUT、POST、OPTIONS和GET请求,并查询状态(不一定来自它所服务的网页,任何客户端都可以通过http进行交互)

我想通过将服务器本身(比如node.js)视为一个黑盒子,通过编程测试一大堆东西

输入如下:

  • json配置文件中不存在、为空或各种类型(不正确)的配置值
  • 使用不同的命令行参数运行程序
  • 与网页交互(导航到该网页,单击按钮,从“文件选择”对话框中选择特定文件,单击“确定”,等等,这将在后台导致许多http请求)
  • 以编程方式执行“原始”http请求
然后通过以下方式验证事物的行为是否符合预期:

  • 在日志文件中查找条目
  • 检查$num进程是否(仍)在运行
  • 检查所有请求的http响应代码。(包括背景中的所有ajaxy请求,或测试中定义的对单个请求的响应)
  • 任意命令(如从Web服务器下载文件并对其求和)
我一直在考虑一些选择:

  • cucumber经常出现在此类话题中,但它似乎相当冗长,而且过于针对商业人士
  • httpunit似乎假设一个系统以一种特定的配置运行
  • rspec似乎是用于白盒测试ruby的
  • 誓言太基本了,没有浏览器自动化
如果有人有意见,我会很感激

谢谢
Dieter

一个通用的解决方案可以是使用一些标准的和外部的lib,比如各种http和selenium lib:

因为我找不到我需要的东西,所以我自己把它组装起来。