测试服务器响应时间

简介:
所谓的响应时间,就是从客户端开始发出请求到服务器最后返回请求时所消耗的时间,见代码
package com.speed; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.lang.reflect.Array; 
import java.net.URL; 

public  class TestServer { 
   static  int loopTimes = 500; 

   public Parameter readFromArgFile(String str) { 
    FileInputStream fileInput; 
    BufferedReader br; 
    Parameter param =  new Parameter(); 
     try { 
      fileInput =  new FileInputStream( new File(str)); 
      br =  new BufferedReader( new InputStreamReader(fileInput)); 

      String line; 
       while ((line = br.readLine()) !=  null) { 
         if (line.startsWith( "URL") ==  true && line.indexOf( "=") >= 3) { 
           int f = line.indexOf( "="); 
          String urlstring = line.substring(f + 1); 
          urlstring.trim(); 
          param.url =  new URL(urlstring); 
        }  else  if (line.startsWith( "METHOD") ==  true 
            && line.indexOf( "=") >= 3) { 
           int f = line.indexOf( "="); 
          String method = line.substring(f + 1); 
          method.trim(); 
          param.method = method; 
        }  else  if (line.indexOf( "=") != -1) { 
           int f = line.indexOf( "="); 
          String key = line.substring(0, f - 1); 
          String value = line.substring(f + 1); 
          param.addPair(key.trim(), value.trim()); 
        } 
      } 
      fileInput.close(); 
      br.close(); 
    }  catch (FileNotFoundException e) { 
      System.out.println( "File" + str +  "not found."); 
    }  catch (NullPointerException e) { 

    }  catch (IOException e) { 
      System.out.println(e); 
    } 
     return param; 
  } 

   public  static  void main(String[] args) { 
     int i; 
     int j; 
    Parameter param; 
    TestServer tester =  new TestServer(); 
     for (i = 0; i < Array.getLength(args); i++) { 
      param = tester.readFromArgFile(args[i]); 
       for (j = 0; j < loopTimes; j++) { 
        Thread th =  new Thread( new TestThread(param)); 
        th.start(); 
      } 
    } 
  } 
}
package com.speed; 

import java.lang.reflect.Array; 
import java.net.URL; 

public  class Parameter { 
  URL url; 
  String[] key; 
  String[] value; 
  String method; 
   int length = 0; 

   public  void addPair(String k, String v) { 
    Array.set(key, length, k); 
    Array.set(value, length, v); 
    length++; 
  } 
}
package com.speed; 

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.Date; 

public  class TestThread  implements Runnable { 
  Parameter param; 

  TestThread(Parameter par) { 
    param = par; 
  } 

   public  void run() { 
     long time1 =  new Date().getTime(); 
     try { 
      URL target = param.url; 
      HttpURLConnection conn = (HttpURLConnection) target 
          .openConnection(); 
      conn.setRequestMethod(param.method); 
       int i; 
       for (i = 0; i < param.length; i++) { 
        conn.setRequestProperty(param.key[i], param.value[i]); 
      } 
      conn.connect(); 
      BufferedReader in =  new BufferedReader( new InputStreamReader(conn 
          .getInputStream())); 
      String inputLine; 
       while ((inputLine = in.readLine()) !=  null); 
    }  catch (Exception e) { 

    } 
     long time2 =  new Date().getTime(); 
    System.out.println((time2 - time1)/1000+ "秒"); 
  } 

}
由于这个是在命令行模式下运行的,我的附件是这样写的
URL=http://mail.163.com 
METHOD=GET 
User-Agent=Internet Explorer 
Host=mail.163.com 
Accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, */* 
Accept-Language=zh-cn 
Content-Type=application/x-www-form-urlencoded 
Accept-Encoding=gzip, deflate 
User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; .NET CLR 2.0.50727;MEGAUPLOAD 1.0) 
Connection=Keep-Alive 
Cache-Control=no-cache
我们来测试一下163的邮件服务器,最后响应时间为14秒,可是单独打开网页的话马上就出现页面了,难道是ajax的过吗?提前展现页面?如果真让用户等待14秒,那还不得疯了,这是个问题,有知道这是为什么的朋友,给我留言告诉我哦!


本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/353618,如需转载请自行联系原作者
相关文章
|
13天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
1月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
116 32
|
1月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
85 31
|
1月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
41 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
71 4
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
56 3
|
1月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度
|
14天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
49 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
248 7
Jmeter实现WebSocket协议的接口测试方法
下一篇
无影云桌面