`
icyheart
  • 浏览: 779471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

测试服务器响应时间

    博客分类:
  • J2SE
阅读更多

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

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秒,那还不得疯了,这是个问题,有知道这是为什么的朋友,给我留言告诉我哦!

分享到:
评论
3 楼 icyheart 2010-01-14  
jinjiankang 写道
Firefox+Firebug也能测试页面响应时间

呵呵,谢谢啦,不过,我还是想用程序进行测试,这样可以批量进行
2 楼 jinjiankang 2010-01-14  
Firefox+Firebug也能测试页面响应时间
1 楼 魔力猫咪 2010-01-14  
请使用专门的测试软件,如Jmeter测试一下。

相关推荐

    java测试服务器响应时间

    总结起来,这个项目通过Java编程实现了对服务器响应时间的测试,涉及到的知识点包括:Java服务器开发、多线程并发测试、参数化测试、HTTP请求处理、时间性能度量以及性能优化策略。通过这样的测试工具,开发者能够...

    如何用LR去测试页面的响应时间

    如果是关注服务器端的响应性能,可以通过lr_start_transaction和lr_end_transaction来测试服务器响应时间;如果需要测试页面从请求到完全展示的整个过程,则需要将整个页面请求作为一个事务来进行测试。同时,需要...

    PERL编写的服务器响应时间(ping)测试

    标题 "PERL编写的服务器响应时间(ping)测试" 涉及到的是使用Perl编程语言来实现一个功能,该功能可以测量服务器的响应时间,并将结果以图形化的HTML文件展示出来。Perl是一种通用的、解释型的脚本语言,特别适合...

    httpwatch(响应时间测试工具)

    响应时间是衡量网页性能的重要指标,它包括了浏览器发送请求到接收到服务器响应的整个过程。这个过程可以细化为DNS解析时间、TCP连接时间、SSL握手时间、首字节时间(TTFB)以及内容下载时间等多个阶段。HTTPWatch...

    curl 查看一个web站点的响应时间(rt) - shuming的专栏 - 博客频道 - CSDN1

    - DNS解析时间、TCP连接建立时间、服务器响应时间、传输完成时间等都是以秒为单位。 - 通过计算这些时间差,可以分析网络延迟、服务器处理速度等性能指标。 通过这些信息,我们可以学习如何使用curl进行基础的...

    性能测试 响应时间

    下面将详细讨论响应时间、性能测试以及如何获取和分析这一数据。 响应时间的组成通常包括以下几部分: 1. **网络传输时间**:数据从客户端发送到服务器,再从服务器返回到客户端所需的时间,受到网络带宽、延迟等...

    DNSbed与DNSpod比较:NS服务器响应时间.docx

    通过实际测试,DNSpod的免费版本NS服务器响应时间有时也会超过100毫秒,尤其对于中国联通用户。而DNSpod的VIP服务使用的NS服务器响应时间通常在50毫秒以下,表明付费服务在性能上明显优于免费服务。 总结来说,...

    WebsocketServer测试服务器

    WebSocketServer测试服务器是一种基于WebSocket协议的服务器实现,用于实时、双向通信。WebSocket协议是HTML5引入的一种在单个TCP连接上进行全双工通信的协议,它为客户端和服务器之间的数据交换提供了简单直接的...

    通过Loadrunner进行并发下数据库响应时间测试

    通过Loadrunner对并发用户下的数据库响应时间进行统计,而非web服务器端的时间统计

    服务器压力测试报告.docx

    服务器压力测试的主要目标是评估服务器在高负载情况下的性能表现,检测服务器的稳定性和可靠性,并分析服务器在峰值负载时的响应时间和吞吐量。常用的压力测试方法包括使用自动化测试工具对服务器进行模拟负载测试,...

    猎人压力测试工具,服务器压力测试

    4. 数据分析:测试结束后,提供详尽的统计报告,包括响应时间、成功率、错误率等关键指标,便于分析服务器性能瓶颈。 三、压力测试步骤与技巧 1. 预备工作:明确测试目标,了解服务器架构,收集待测接口或业务流程...

    压力测试和服务器稳定性测试

    压力测试,顾名思义,就是对系统施加超过其常规工作负荷的压力,以测试其极限处理能力和响应时间。这种测试通常涉及到模拟大量用户同时访问系统,检查系统是否能够在高负载下保持正常的运作,以及系统在达到或超过其...

    服务器硬件测试标准.doc

    流程的绩效KPI可能包括故障响应时间、修复率、平均无故障时间(MTBF)和平均修复时间(MTTR)等指标,这些数据用于评估硬件测试流程的效率和效果。 附件部分可能包含更详细的操作指南、故障代码参考、日志文件等,...

    多线程性能测试工具(服务器压力测试)

    1. **多线程模拟**:生成多个线程来模拟并发用户,以测试服务器的并发处理能力。 2. **负载控制**:允许调整并发请求数量和请求频率,以模拟不同级别的压力。 3. **性能指标收集**:记录服务器的响应时间、吞吐量等...

    GPU服务器上显卡压力测试工具及测试方法介绍.docx

    NVIDIA-smi 不仅可以测试桌面显卡,还可以测试服务器上的显卡,为显卡的稳定性和性能提供了可靠的评估方法。 二、显卡压力测试方法 在进行显卡压力测试时,我们需要根据实际情况选择适合的测试方法。以下是两种...

    TCP服务器测试工具

    2. **数据传输**:工具允许用户发送自定义的数据包到服务器,以测试服务器对不同输入的响应。这有助于识别可能的协议错误或处理异常。 3. **性能评估**:通过模拟多客户端并发连接,测试工具能评估服务器的并发处理...

    服务器压力测试服务端及客户端(不含源码)

    2. **数据收集**:记录并分析服务器和客户端的性能指标,包括请求响应时间、失败率、资源利用率等。 3. **负载模型**:确保负载模型尽可能接近实际生产环境,包括请求的分布、会话的持久性等。 4. **稳定性测试周期*...

Global site tag (gtag.js) - Google Analytics