负载测试
其他非常重要的标准在测试RESTful Web服务产品准备度,是它的性能是否符合服务等级协议(SLAs)的预期。例如,在高峰时,服务每秒应该能处理1000次请求,并且平均响应时间不超过250毫秒。
有大量商业和开源产品用来测试一个Web服务是否能处理这么多请求。最常用的是开源软件,Apache JMeter(http://jmeter.apache.org)。对于JMeter,开发者可以创建测试计划,这个测试计划可以在定义的速率下执行,并获取响应时间。下面的截图暂时了运行一个测试计划的结果,这个测试计划包括一次对我们属性管理系统去遍历房间ID为1的调用。
我们同时执行http://localhost:8080/rooms/11000次(使用10个进程),且平均响应时间是11ms。通过增加进程数,我们可以模拟更多这个服务上的负载。
注意
模拟真实的产品负载不是容易实现的。因此,服务设计者也许可以看看性能在模拟负载和真实负载下的差异。这个事实并不是带走负载测试的价值。它仅仅意味着服务设计者不应该依靠负载测试的结果去保证满足SLAs协议。