http性能测试

apache附带的压力测试工具ab,非常容易使用,并且可以模拟各种条件下对web服务器发起的测试请求,他也可以在web服务器本地发起一个测试请求,mac下自带了Apache环境,
启动Apache,打开终端,输入
sudo apachectl -v
显示apache的版本
接着输入
sudo apachectl start
这样apache就启动了,打开Safari浏览器地址栏输入 “http://localhost”,可以看到内容为“It works!”的页面
 



先把服务跑起来
node index.js
用我们之前node开始起服务的示例代码
输入
ab -n1000 -c10 http://127.0.0.1:3000/
-n1000 表示总的请求数是1000个,他默认的值是1
-c10 表示并发是10,默认值也是1
http://127.0.0.1:3000/ 表示要测试的地址,注意这个地址后面需要加上/
除了/n,/c,还有其他参数
-t 表示用来测试所进行的总时间
-p 表示post时候的数据文件
-w 以html表格的形式输出结果
输入上面的命令行,可以看到终端很快就把测试跑完了

 

一堆的测试结果,都是一些专有的名词
Server Software: 表示被测试web服务器软件的名称
Server Hostname: 表示请求url中到主机名称,主机名
Server Port: 表示监听的端口
Document Path: 表示请求url中的根节点路径
Document Length: 表示响应正文的长度
Concurrency Level: 并发数,这里是设置好的参数
Time taken for tests: 所有请求花费的总时间
Complete requests: 完成的请求数量,这也是我们设置好的参数
Failed requests: 失败的总请求数,这里失败表示请求服务器,发送数据,接收数据发生异常,也包括无响应超时的情况
Total transferred: 整个网络过程中的网络参数量,所有响应数据的长度总和,包括http响应的头信息和正文响应的长度
HTML transferred: 整个过程html的参数量,
Requests per second: 服务器的吞吐率,相当于每秒的事务数
Time per request: 用户平均请求的等待时间,相当于平均事务的响应时间
Time per request: 每个连接请求,实际运行时间的平均值
Transfer rate: 这些请求,单位时间内,网络上的流量,可以帮助排除是否是网络流量过大而导致响应时间延长
Connection Times: 网络上消耗时间的分解,像连接,等待,处理这些
Percentage of the requests served within a certain time: 在一定时间内送达的请求的百分比
eg
90% 4: 表示90%的用户平均请求的时间是少于4ms的




测试本地不是很过瘾,我们直接测试下线上网站
命令行输入
ab -n1000 -c10 https://www.imooc.com/
这个-n并发量不能设置太大,如果对慕课网产生不好的影响就不好了,这个测试不要乱搞啊,如图

在远程对web服务器这个压力测试对时候,往往效果不是很理想,因为有个网络对延时,建议内网另一台或者多台对内网进行测试,这样得出的数据准确度会高很多,如果单独一台服务器,可以进行本地测试,他比远程测试的效果会准确一些,这个测试结果有很多因素,比如网络状况,电脑配置,电脑的老化程度等等,我们自己的内容慢的话,可以进行测试,找出响应慢的原因

猜你喜欢

转载自www.cnblogs.com/wzndkj/p/9119966.html