简介

  • http_load是基于linux、unix平台的一种性能测工具

  • 它以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能

  • 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死

  • 还可以测试HTTPS类的网站请求

  总结特点以及缺点

特点:

  • 基于命令行,简单、易于上手

  • 小巧轻便,解压缩后既然还不到100kb

  • 这款工具是开源,免费的

缺点:

  • 仅适用于web页面的性能测试,不适用于访问数据库

  • 测试结果分析有限

  • 平台依赖Linux(没有Windows)

除了"http_load"Web压力测试工具以外还有比较厉害的 webbench、ab、Siege 等Web测试工具

下载http_load

1 [root@vforbox ~]# cd /usr/local/src2 [root@vforbox src]# wget http://www.acme.com/software/http_load/http_load-14aug2014.tar.gz

安装

复制代码

 1 [root@vforbox src]# tar zxvf http_load-14aug2014.tar.gz      //解压当前文件 2 [root@vforbox src]# cd http_load-14aug2014                 //进入解压后的目录 3 [root@vforbox http_load-14aug2014]# make                //执行make,执行完make,会在当前目录生成一个http_load二进制文件。 4 [root@vforbox http_load-14aug2014]# ll 5   total 124 6   -r--r--r--. 1 1544 80 97 Jul 15 2001 FILES 7   -rwxr-xr-x. 1 root root 24400 Aug 22 10:49 http_load 8   -r--r--r--. 1 1544 80 5414 May 20 2005 http_load.1 9   -r--r--r--. 1 1544 80 47394 Aug 14 2014 http_load.c10   -rw-r--r--. 1 1544 80 1682 Aug 11 2014 Makefile11   -r-xr-xr-x. 1 1544 80 1178 Sep 13 2000 make_test_files12   -r--r--r--. 1 1544 80 2397 Aug 2 2014 port.h13   -r--r--r--. 1 1544 80 1035 Mar 12 2006 README14   -r--r--r--. 1 1544 80 7362 Jul 9 2014 timers.c15   -r--r--r--. 1 1544 80 3832 Jul 9 2014 timers.h16   -rw-r--r--. 1 root root 4760 Aug 22 10:49 timers.o17   -r--r--r--. 1 1544 80 163 Aug 13 2014 version.h

复制代码

http_load的使用方法

复制代码

1 [root@vforbox http_load-14aug2014]# http_load --help2 usage:  http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]3             -parallel N | -rate N [-jitter]4             -fetches N | -seconds N5             url_file6 One start specifier, either -parallel or -rate, is required.7 One end specifier, either -fetches or -seconds, is required.

复制代码

  主要参数说明:

  • -parallel 简写-p :含义是并发的用户进程数

  • -rate 简写-r :含义是每秒的访问频率

  • -fetches 简写-f :含义是总计的访问次数

  • -seconds简写-s :含义是总计的访问时间

  • 只要使用http_load命令,-parallel或者-rate必须填一个

  • 只要使用http_load命令,-fetche或者-seconds必须填一个

  • url_file表示你的url文件路径,url文件是一个文本文件,里面填写你需要压力测试的网址,可以是一个也可以是多个

1 http://www.cnblogs.com/vforbox/p/4740517.html2 http://www.cnblogs.com/vforbox/p/4754618.html3 http://www.cnblogs.com/vforbox/p/4754405.html

示例分析

  • 下面以笔者的一个小项目来讲解,url.txt中即存放其项目地址

复制代码

1 [root@vforbox http_load-14aug2014]# ./http_load -p 30 -s 60  url.txt  //表示执行了一个持续时间为60秒的测试,用户进程数为302 1044 fetches, 30 max parallel, 1.88674e+07 bytes, in 60 seconds3 18072.2 mean bytes/connection4 17.4 fetches/sec, 314457 bytes/sec5 msecs/connect: 66.3438 mean, 1066.13 max, 45.677 min6 msecs/first-response: 231.517 mean, 9210.48 max, 69.683 min7 HTTP response codes:8   code 200 -- 1044

复制代码

  • 1044个请求,最大并发数30,总计传输的数据为188674000 bytes,运行时间为60秒,关注点:总请求数、最大并发进程数

  • 每一连接平均传输的数据量,等于188674000bytes/1044请求数=180722

  • 每秒响应的请求数为18072.2,每秒传递的数据量为...,关注点:每秒响应的请求数(对应LoadRunner中的每秒响应用户数)

  • 每次连接的平均响应时间是66.3438msecs,最大响应时间1066.13 msecs,最小响应时间15.677 msecs,关注点:每个连接的平均响应时间(对应quicktestProfessional中的response time,每连接响应用户时间 )

  • ...待补充

  • 表示打开响应页面的HTML状态码,200表示响应成功;如果403的类型过多,那可能要注意是否系统遇到了瓶颈

1 [root@vforbox http_load-14aug2014]# http_load -parallel 20 -s 10 url.txt        //同时使用20个用户进程,随机访问url.txt中的网址列表,总共访问10秒2 [root@vforbox http_load-14aug2014]# http_load -rate 60 -f 3000 url.txt          //每秒请求60次,总共请求3000次停止


原文:http://www.cnblogs.com/vforbox/p/4754618.html