我们在测试过程中有的时候响应时间可以通过客户端性能测试工具获得,但是有的时候不能,特别是异步传输的系统,当系统请求发出后系统不是及时响应,而是通过后续的应用获取信息,这种情况下现有客户端性能测试工具很难解决响应时间的衡量。因此在类似于此类测试过程中我们可以通过Ethereal类似的协议分析工具进行响应时间测量。具体方法如下: 1) 找出客户端与服务器端通信的数据标志,包括特定的请求标志和响应标志,主要用来判定系统何时向服务器发起请求何时回应。
  2) 准备数据包分析工具,并确定在测量过程中数据包分析工具可以监听到通信的数据包
  3) 保证通信的完整性,包括客户端的请求和服务器端的响应。
  4) 执行业务同时启动数据包侦听工具进行数据包抓取,停止业务操作,延时一段时间停止数据包捕获;
  5) 通过之前确定的服务器通信标志,查找出请求标志数据报文和响应标志数据报文;
  6) 通过找到的数据报文的时间戳相减获得响应时间,可以多次测量减少误差。
  7) 在测量过程中保证时钟同步。 存在的问题: 1) 多用户并发情况下,由于数据包量非常大很难进行分析,另外不同用户的请求同样需要确定标志位。
  2) 测量过程繁琐,现在基本还找不到自动测量的工具,只是通过Ethereal类似的数据侦听工具辅助测量。 一个实例:
  电话会议外呼响应时间测量
  业务描述:电话外呼业务客户端采用了Flex的富客户端技术,通过Flash展现客户监控功能,与服务器进行异步交互,客户端发出请求后有另外一个进程通过Getmessage的方式获取服务器上的请求响应消息。
  测量过程: 1) 确定外呼标志位,通过分析发现外呼标志:"Callout…..",也就业务者当客户端发出此标志的数据报文时,表示客户端向服务器发起外呼请求。响应标志:ACV.P.A此标志表明服务器返回此标志意味着呼叫成功。(此过程比较耗时)
  2) 启动被测应用,同时启动Ethereal监听服务器与客户端通信的数据报文
  3) 执行外呼业务,执行完成后,在一定时间后,在这里延时(1分钟)因为要求外呼响应不超过1秒。
  4) 分析捕获的数据报文,通过Ethereal的查找功能,查找出外呼标志和响应标志,通过时间戳相减获取响应时间。
  5) 多次测量,求平均值。 展望: 1) 通过协议分析工具与负载测试工具结合自动获取异步传输过程中的响应时间,希望测试工具开发厂商可以思考一下这个问题,因为现在随着RCP技术的发展异步传输的系统越来越多,那么此类技术的测量点也会越来越多,希望工具厂商能够重视。
  2) 协议分析工具自动分析,通过对开源的Ethereal进行二次开发,初步完成这些功能:包括标志位的设定,相关标志位数据报文的抽取、响应时间的计算等功能。 期待…….