博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试服务器响应时间
阅读量:6970 次
发布时间:2019-06-27

本文共 3589 字,大约阅读时间需要 11 分钟。

所谓的响应时间,就是从客户端开始发出请求到服务器最后返回请求时所消耗的时间,见代码
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,如需转载请自行联系原作者
你可能感兴趣的文章
连续子数组的最大和
查看>>
windows7下cmd命令窗口没有滚动条的解救方法
查看>>
查看oracle数据库的连接数以及用户
查看>>
某公司git代码管理,到如何上线
查看>>
ubuntu 16.04安装mips交叉编译
查看>>
MyEclipse查看Struts2源码及Javadoc文档
查看>>
C语言基础学习day03
查看>>
js代码规范
查看>>
Algs4-2.4.24链接实现优先队列
查看>>
spring mvc 程序
查看>>
20条Linux命令面试问答
查看>>
Jmeter做并发测试(设置集合点)
查看>>
001/Nginx高可用模式下的负载均衡与动静分离(笔记)
查看>>
云服务jdk 升级为 OpenJDK11
查看>>
wp 取消button按下效果
查看>>
【差分约束】
查看>>
C#,java,C++ 等变量命名规则
查看>>
第六次实验
查看>>
python 编码问题
查看>>
进程与线程
查看>>