ab+jenkins非高并發(fā)的壓測

序言

首先聊一下對于我來說壓力測試的目的
壓力測試和性能測試不一樣,它是指測試系統(tǒng)的內(nèi)存、CPU、磁盤網(wǎng)絡(luò)IO在接近超負(fù)荷運(yùn)行時所能承受最大并發(fā)量。
當(dāng)然如果是不追求高并發(fā)的情況下,在現(xiàn)在計算機(jī)硬件性能大幅度提高的當(dāng)下,沒有什么問題是加一臺服務(wù)器不能解決的,如果有那就加兩臺ヽ( ̄▽ ̄)?,所以在測試環(huán)境做壓測是為了發(fā)現(xiàn)程序是否有嚴(yán)重的性能問題(比如SQL語句性能很有問題)導(dǎo)致在正常并發(fā)下使正常性能的系統(tǒng)出現(xiàn)內(nèi)存、CPU不足甚至服務(wù)器掛掉等問題
反過來說,我做壓測的目的是為了驗證程序能否承受正常的并發(fā),所以看中的指標(biāo)有:
1.TPS(吞吐量)
2.響應(yīng)時間超時的數(shù)量/請求次數(shù)
3.承受正常的請求數(shù)并發(fā)時,CPU和內(nèi)存的占用*

ab命令

  1. 安裝Apache,添加 ab命令的環(huán)境變量path
  2. 命令行使用ab:
ab -c <并發(fā)量> -n <總請求數(shù)>  <url>

需要session的網(wǎng)頁可以添加:-H "Cookie: cookie1_name=cookie1_value; cookie2_name=cookie2_value"

jenkins使用

下載war格式的包,使用java命令運(yùn)行,每次啟動都用該命令

java -jar jenkins.war

運(yùn)行完成后,復(fù)制控制臺輸出的口令,打開http://localhost:8080/ ,輸入口令,創(chuàng)建用戶完成安裝

jenkins配置環(huán)境變量
1、系統(tǒng)設(shè)置中可設(shè)置全局變量
2、使用Envject插件 設(shè)置 job的局部變量: Properties Content 或Properties File Path(讀取配置文件)

實(shí)踐時的環(huán)境變量設(shè)置

這里有個坑:在windows中設(shè)置path=c:\xx\ ,使用雙反斜杠
3、引用環(huán)境變量:
系統(tǒng)命令行使用% %, shell 用$ ; python 用os.getenv("環(huán)境變量名")

ab+jenkins實(shí)踐

這里的實(shí)踐測試的URL是我在自己的VPS(單核CPU和1.5G內(nèi)存)上部署的網(wǎng)站,方便隨時查看系統(tǒng),同時因為很多地方?jīng)]優(yōu)化,能承受的并發(fā)很小,所以看出性能問題來。
50的并發(fā),每個網(wǎng)頁總共請求300次
網(wǎng)頁1:http://www.valkyrie233.com/
網(wǎng)頁2:http://www.valkyrie233.com/article
1.環(huán)境變量配置:

con=50
req=300
urls=http://www.valkyrie233.com/,http://www.valkyrie233.com/article
cookie=

2.構(gòu)建執(zhí)行的shell:

#!python.exe
import os
urls=str(os.getenv('urls')).split(',')
cookie=os.getenv('cookie')
for url in urls:
    shell='ab -c %con% -n %req% '+url
    if cookie!=None:
        shell+='-H '+str(cookie)
    os.system(shell)

3.執(zhí)行構(gòu)建

報告分析

1.jenkins打印輸出

壓測網(wǎng)頁1
壓測網(wǎng)頁2

2.觀察系統(tǒng)性能監(jiān)控,使用htop命令

網(wǎng)頁1的性能監(jiān)控
網(wǎng)頁2的性能監(jiān)控

3、分析問題:
網(wǎng)頁1在CPU超負(fù)荷但內(nèi)存還有空余的情況下,TPS過低,請求響應(yīng)時間過高(超過5S很影響用戶體驗)
網(wǎng)頁2在CPU有空余且內(nèi)存還有空余的情況下,請求響應(yīng)時間超級高,TPS也超級低,但網(wǎng)絡(luò)帶寬又有剩余的。
結(jié)論:網(wǎng)頁1需要優(yōu)化,網(wǎng)頁2性能有嚴(yán)重問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,873評論 25 709
  • 原文:淺談如何提高服務(wù)器并發(fā)處理能力(來自某位大牛的博客) 目錄 (一)什么是服務(wù)器并發(fā)處理能力 (二)有什么方法...
    meng_philip123閱讀 5,609評論 2 46
  • 十七歲那年的雨季 那年,我十七歲,年少純真的年紀(jì),懵懂和憧憬是那個時代的代名詞。那時大街小巷流行的音樂是臺灣...
    魯瑜閱讀 385評論 1 0
  • 緊張而又愉快的暑假突擊集訓(xùn)結(jié)束了,好放松啊,生活如此優(yōu)美。
    張賽琴閱讀 276評論 0 1
  • 什么時候能讓喧囂的世界停留一下,只為我停留。 他們說,有個安靜的島,我想要找到它。 他們說,有個安靜的島,我想可以...
    柚子涼閱讀 559評論 0 2

友情鏈接更多精彩內(nèi)容