apache ab压测与参数传递

前言

入职了新公司配置了mac办公,当要进行测试时同事说到用ab测试,当时的我一脸懵逼ab是个啥?当他为我解释完ab是个啥的时候,我想那就动手装一个吧,结果人家说mac下已经装好了,再一次被打脸….
下面我们进入正题,再网上搜了很多资料大部分都是介绍了一些安装及无参数的测试,对需要传参测试的并不太适用,本篇文章是对网上文章的一些总结,测试均采用自己的例子。

压测相关概念

  1. 吞吐率(Requests per second)
    概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
    计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
    Request per second = Complete requests / Time taken for tests

  2. 并发连接数(The number of concurrent connections)
    概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

  3. 并发用户数(The number of concurrent users,Concurrency Level)
    概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

  4. 用户平均请求等待时间(Time per request)
    计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
    Time per request = Time taken for tests /( Complete requests / Concurrency Level)

  5. 服务器平均请求等待时间(Time per request: across all concurrent requests)
    计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
    Time taken for / testsComplete requests
    可以看到,它是吞吐率的倒数。
    同时,它也=用户平均请求等待时间/并发用户数,即
    Time per request / Concurrency Level

apache ab配置

  1. 开启
    mac下已经安装好了apaache我们之间开启就好了
    键入 sudo apachectl -v 显示apache信息
    键入 sudo apachectl start 开启
  2. 配置
    打开Apache的配置文件
    sudo vi /etc/apache2/httpd.conf在httpd.conf中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“#”,保存并退出,去掉这一行的#意思是从/extra/httpd-vhosts.conf这个文件导入虚拟主机配置。
    然后重启Apache
    sudo apachectl restart
    运行如下命令:
    sudo vi /etc/apache2/extra/httpd-vhosts.conf
    就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:
    增加如下配置
<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/snandy/work"
    ServerName mysites
    ErrorLog "/private/var/log/apache2/sites-error_log"
    CustomLog "/private/var/log/apache2/sites-access_log" common
<Directory />
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order deny,allow
            Allow from all
  </Directory>
</VirtualHost>

保存退出,后重启apache就可以进行压测了。

apache ab 压测

测试命令

ab -n 100 -c 10 http://test.com/
其中-n表示请求数,-c表示并发数
其余命令请参见 http://apache.jz123.cn/programs/ab.html

测试Get请求并传入一个参数

这里我就直接贴出来我得测试结果
这里写图片描述

测试get请求并输入两个参数

同样直接贴图了
这里写图片描述

测试post请求

post有两个参数:p(小写),T(大写),注意区分大小写,一个是用于指定POST请求时的参数文件,一个用于指定请求的类型Content-type,关于Content-type的类型,大家可以百度。
我自己的测试中并没有指定
以下为我得参数json串。

{"lesson_id":8877,"unionid":"f2_877","user_id":123}

这里写图片描述

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页