1. 程式人生 > >ab 效能測試工具的使用(Web併發測試)

ab 效能測試工具的使用(Web併發測試)

1、下載

2、命令介紹

  引數的介紹

n在測試會話中所執行的請求個數。預設時,僅執行一個請求。

-c一次產生的請求個數。預設是一次一個。

-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。

-p包含了需要POST的資料的檔案。

-P對一箇中轉代理提供BASIC認證信任。使用者名稱和密碼由一個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即, 是否傳送了401認證需求程式碼),此字串都會被髮送。

-T POST資料所使用的Content-type頭資訊。

-v設定顯示資訊的詳細程度-4或更大值會顯示頭資訊,3或更大值可以顯示響應程式碼(404
,200等),2或更大值可以顯示警告和其他資訊。 -V顯示版本號並退出。 -w以HTML表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。 -i執行HEAD請求,而不是GET。 -x設定<table>屬性的字串。 -X對請求使用代理伺服器。 -y設定<tr>屬性的字串。 -z設定<td>屬性的字串。 -C對請求附加一個Cookie:行。其典型形式是name=value的一個引數對,此引數可以重複。 -H對請求附加額外的頭資訊。此引數的典型形式是一個有效的頭資訊行,其中包含了以冒號分隔的欄位和值的對(如,"
Accept-Encoding:zip/zop;8bit")。 -A對伺服器提供BASIC認證信任。使用者名稱和密碼由一個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即,是否傳送了401認證需求程式碼),此字串都會被髮送。 -h顯示使用方法。 -d不顯示"percentage served within XX [ms] table"的訊息(為以前的版本提供支援)。 -e產生一個以逗號分隔的(CSV)檔案,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由於這種格式已經“二進位制化”,所以比'gnuplot'格式更有用。
-g把所有測試結果寫入一個'gnuplot'或者TSV(以Tab分隔的)檔案。此檔案可以方便地匯入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行為標題。 -i執行HEAD請求,而不是GET。 -k啟用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。預設時,不啟用KeepAlive功能。 -q如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此-q標記可以抑制這些資訊。

3、使用

1)、在cmd(DOS介面下進入到ab的bin目錄下)

  注意:在Windows系統的命令列下,進入ab.exe程式所在目錄,執行ab.exe程式。注意直接雙擊無法正確執行。 (直接輸入命令即可)  

2)、輸入命令

  向url為http://172.18.97.17:8080/admin/auth傳送100次請求,包含的資料來自於D:/Desktop/temp/post/post.txt檔案,

  注意: 'application/x-www-form-urlencoded'有些系統需要去掉 ' 

ab -n 100 -p D:/Desktop/temp/post/post.txt -T 'application/x-www-form-urlencoded' http://172.18.97.17:8080/admin/auth

檔案D:/Desktop/temp/post/post.txt中資料(該url需要接收tokenId這個請求

tokenId=be4afc178e5c2526ac99289cda93399dd4e

假如需要多個請求可以使用&隔開,如下所示:

tokenId=be4afc178e5c2526ac99289cda93399dd4e
userName=admin&password=e10adc3949ba59abbe56e057f20f883e

 結果如下:

4、效能指標

在進行效能測試過程中有幾個指標比較重要:

1、吞吐率(Requests per second)

伺服器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。

記住:吞吐率是基於併發使用者數的。這句話代表了兩個含義:

a、吞吐率和併發使用者數相關

b、不同的併發使用者數下,吞吐率一般是不同的

計算公式:總請求數/處理完成這些請求數所花費的時間,即

Request per second=Complete requests/Time taken for tests

必須要說明的是,這個數值表示當前機器的整體效能,值越大越好。

2、併發連線數(The number of concurrent connections)

併發連線數指的是某個時刻伺服器所接受的請求數目,簡單的講,就是一個會話。

3、併發使用者數(Concurrency Level)

要注意區分這個概念和併發連線數之間的區別,一個使用者可能同時會產生多個會話,也即連線數。在HTTP/1.1下,IE7支援兩個併發連線,IE8支援6個併發連線,FireFox3支援4個併發連線,所以相應的,我們的併發使用者數就得除以這個基數。

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

附錄:

1、使用post方式傳送資料才需要一個檔案儲存資料,假如使用get方式傳送資料,直接將資料放在後面即可,如攜帶tokenId引數

ab -n 100   http://localhost:8080/admin/auth/quickAuth?tokenId=1111

2、post 傳送一個 json格式資料

ab -p C:/Users/zcr/Desktop/postjson.txt -T application/json -c 10 -n 2000 http://172.18.97.17:8080/admin/auth

   致謝:感謝您的閱讀!

相關推薦

ab 效能測試工具的使用Web併發測試

1、下載 2、命令介紹   引數的介紹 n在測試會話中所執行的請求個數。預設時,僅執行一個請求。 -c一次產生的請求個數。預設是一次一個。 -t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。 -p包

自動化測試工具基於WordCount作業

本自動化測試的程式用於自動化測試[WordCount作業](https://edu.cnblogs.com/campus/fzu/FZUSESPR21/homework/11672),採用Java開發(基於jdk1.8+),基於Maven來管理專案。 ## 支援的語言和開發進度 | 語言 | 進度

常用的一些效能/自動化工具lr,jmeter,QTP,

Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫, FTP

壓力測試工具Web效能壓力測試工具ApacheBenchab詳解

網站效能壓力測試是效能調優過程中必不可少的一環。只有讓伺服器處在高壓情況下才能真正體現出各種設定所暴露的問題。Apache中有個自帶的,名為ab的程式,可以對Apache或其它型別的伺服器進行網站訪問壓力測試。 ApacheBench命令原理: ab命令會建立很

Linux下四款Web伺服器壓力測試工具http_load、webbench、ab、siege介紹

一、http_load程式非常小,解壓後也不到100Khttp_load以並行複用的方式執行,用以測試web伺服器的吞吐量與負載。但是它不同於大多數壓力測試工具,它可以以一個單一的程序執行,一般不會把客戶機搞死。還可以測試HTTPS類的網站請求。下載地址:http://sof

測者的效能測試手冊:Web壓力測試工具webbench

webbench最多可以模擬3萬個併發連線去測試網站的負載能力,個人感覺要比Apache自帶的ab壓力測試工具好,安裝使用也特別方便。 1、適用系統:Linux 2、編譯安裝: wget http://www.ha97.com/code/webbench-1.5.tar.gz

get、post請求使用ab工具如何做併發測試

最近確實也有些忙,原來都是利用週末的時間寫東西,現在週末的時間被佔滿,照顧小孩。只能忙中找空,寫

LoadRunner效能測試工具---使用流程

    LoadRunner,是一種預測系統行為和效能的負載測試工具。通過以模擬上千萬使用者實施併發負載及實時效能監測的方式來確認和查詢問題,LoadRunner能夠對整個企業架構進行測試。企業使用LoadRunner能最大限度地縮短測試時間,優化效能和加速應用系統的釋出週

Web開發常用的測試工具

最近使用了一款叫NetTool的工具,其Http Client功能手動構建Http(Get和Post)資料包十分方便,資料包的Headers資訊一目瞭然,Post的資料區填寫很簡單,用來模擬客戶端(Client)傳送請求到指定伺服器(Server),同時接收伺服器反饋,可以

Web介面測試工具postman/fiddler

1. PostmanPostman是一個 Chrome 擴充套件,能提供強大的 Web API & HTTP 請求除錯功能。Postman能夠傳送任何型別的http請求,支援GET/PUT/POST/DELETE等,請求頭中可以附帶任何數量的headers資訊。Pos

自己上手寫效能測試工具

上週教大家如何通過Python實現效能測試工具,最後留了一下問題,今天我們繼續來實現命令列工具。 ## 依賴庫 ``` requests==2.22.0 gevent==20.9.0 numpy==1.19.2 click==7.1.2 ``` ## click 庫 今天的主角是click庫。 中文

mysql之 mysql數據庫壓力測試工具mysqlslap

root .cn this 用戶 cas bench 測試 逗號 complete mysqlslap是從MySQL的5.1.4版開始就開始官方提供的壓力測試工具。通過模擬多個並發客戶端並發訪問MySQL來執行壓力測試,同時提供了較詳細的SQL執行數據性能報告,並且能很好的

自動測試工具qtp等

-- ID 操作系統 HR jce api函數 獲取 BE 復雜 loadrunner、Selenium、QTP三者區別? Loadrunner是商業性能測試工具,收費,功能強大,適合做復雜場景的性能測試。 Selenium是開源的web自動測試工具,免費,主要做功能

Python3 接口自動化測試項目實戰一WEB項目

json格式 協議類型 def 以及 chrom pos token 人的 acc 1.1 接口測試項目搭建 1.1.1 教育局招生管理系統部署 教育局招生管理系統是基於java+mysql,下面介紹它的部署過程。 1.從我的網盤下載部署文件。 2.安裝jdk以及配置

效能測試工具siege安裝及測試

其實對於類似的效能測試工具之前接觸過AB。我是在ubuntu下做的測試。 1、更新系統 sudo apt-get update && sudo apt-get upgrade –show-upgraded 2、下載最新版的siege wget http://do

visual studio 2013 幾個測試工具Nunit 3、xUnit

一、Nunit 3 1、在解決方案裡新增一個類庫——引用——右鍵(如下圖)) 3、搜尋nunit 並安裝(如圖) 3、注意引入名稱空間並給測試類和測試方法新增特性(如圖) 4、如果測試通過則為綠色(如下圖) 5、就差不多是這樣了   二、xUnit  步驟跟上

測者的性能測試手冊:Web壓力測試工具webbench

padding req adding 說明 apache war add com 系統 webbench最多可以模擬3萬個並發連接去測試網站的負載能力,個人感覺要比Apache自帶的ab壓力測試工具好,安裝使用也特別方便。 1、適用系統:Linux 2、編譯安裝:

目前市面上最好的測試工具TOP12

1: Robot Framework Robot Framework 是一個開源的自動化測試框架,它實現了關鍵字測試驅動來實現測試驅動開發(ATDD)。Robot Framework 為不同的自動化測試需求提供了不同的框架。它的測試能力可以通過 Python 和

linux裝置驅動0測試工具比較通用

下面使用getopt_long實現的基於命令列的驅動測試軟體,比較通用,拓展性強 使用如下: No device found Usage: driver_test_tool [Device] [cmd] [data] ... Options: -o --ope

python協程--asyncio模組基礎併發測試

在高併發的場景下,python提供了一個多執行緒的模組threading,但似乎這個模組並不近人如意,原因在於cpython本身的全域性解析鎖(GIL)問題,在一段時間片內實際上的執行是單執行緒的。同時還存在著資源爭奪的問題。python3.4之後引入了基於生成器物件的協程概念。也就是asyncio模組。除了