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}

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章