3 Apache ab的扩展

通过对源代码的分析及其流程的剖析可得出Apache ab存在一些不足,主要表现在没有完整地实现HTTP/1.x,仅接受某些“预想”的响应格式;请求分布过于简单,仅仅是同时建立多次连接,无法模拟真实的网络请求情况:测试结果只是针对总体测试而言,没有单个请求的测试信息;对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果;不支持Web Service,Grid Service。

3.1 修改请求信息

为了支持基于服务等级的网格服务的功能测试和压力测试,把Apache ab中HTTP头的初始化修改成SOAP请求的构造。采用了直接构造SOAP消息并发送的方式来请求服务并获取返回消息,需要对ab进行修改:①SOAP是一个HTTP POST请求,另外Content-Type必须指定为text/xml;charset=utf-8用于指明服务器脚本应该动态生成XML文档以及字符编码应该为UTF一8(否则会出现编码错误);②在HTTP头中增加SOAPAction字段,使服务器能正确的过滤HTTP中SOAP请求消息;③一个SOAP请求的HTTP体是一个XML文档,包含请求服务的参数信息,这个XML就是SOAP信封,所以在构造SOAP请求时,必须在HTTP头初始化完毕后附加SOAP信封。为了让服务器准确的获取SOAP信封,必须在SOAP信封前加上HTTP体的长度(即SOAP信封的长度);④为了支持基于服务等级的网格服务测试,程序中还随机生成了各种服务等级并附加在SOAP请求中,用于模拟请求基于服务等级的网格服务。由于单一的HTTP请求信息是唯一的,所以Apache ab中只对HTTP请求初始化一次即可。这种情况在具有多服务等级的网格服务中是不适用的,所以,对SOAP请求的构造必须在发送前进行多次。

3.2 修改请求发送过程

为了更加准确的模拟真实的网络请求,从而获取更加可信的测试结果,必须修改Apache ab中请求分布,使其更符合真实的网络请求。因为在Apache ab中,多请求的情况是通过与服务器同时建立多次连接来模拟的,这并不符合真实的网络请求状况。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查