自動化壓測(持續更新中)

2021-10-07 23:52:32 字數 2434 閱讀 1911

2023年7月8日更新

問題來了:每次把壓力機上的報告push到倉庫,要執行3個命令,真的很煩,所以我們把這3個命令寫到~/.bashrc裡,命令如下;以後我們push的時候,只要執行 1條命令就好了,即push

push(

)

2023年7月9日更新

壓測過程中,我們在執行jmeter -n -t xx.jmx -l xx.jtl -e -o ./report命令時,jmeter經常不會自動結束;遇到這種情況,我們會強殺程序;殺掉程序後,report沒有生成。

為了解決report沒有生成的問題,我們採取兩步走,即先執行jmeter -n -t xx.jmx -l xx.jtl,再用jtl檔案生成html報告:jmeter -g xx.jtl -e -o ./report

那麼問題又來了,即每生成1個jtl檔案,就得執行1次jmeter -g xx.jtl -e -o ./report命令,多煩啊。為了能批量生成報告,我們寫了shell命令放在.bashrc檔案中,命令如下,以後所有介面都壓完了,在jtl檔案所在目錄執行report命令即可

report()"

]];then

echo

"執行 jmeter -g $ -e -o ./$"

`jmeter -g $ -e -o "./$"

` else

echo

"./$ 已存在!"

fidone

}

2023年7月10日更新

我們希望命令再簡單一些,即1個命令就能執行壓測、生成報告、push報告;於是我們把幾個命令合在一起並放在.bashrc中,命令如下:

run(

)

執行之後,發現第1個問題:有時jmeter -n -t script.jmx -l $1不能自動結束。為了解決這個問題,我們把命令放在後台執行,即jmeter -n -t script.jmx -l $1 &;然後設定乙個等待時間,即sleep 210,等待時間一過,我們就殺掉上面命令的程序;等待時間是根據「壓測時長+30s」設定的,比如壓測時長設定為180s,sleep時間就等於210s;殺程序的命令如下:

killjmeter()'

` kill -9 $pid

}

整理下目前的指令碼

run(

)

run(

)

執行命令run xx.jtl,此時1條命令解決了執行、生成報告、push報告

2023年7月12日更新

壓測指令碼在本機調好後,上傳到linux伺服器,如果要壓測的介面或執行緒數,我們會vim xx.jmx,直接在指令碼上改,這種方式很容易出錯,且非常繁瑣。為了解決這個問題,我們想在命令中傳入要壓測的介面和執行緒數。

解決思路:

1.要有個壓測指令碼的模板,如template.jmx,其中所有的介面enable=false,執行緒數threadgroup.num_threads設定為threads_num

2.執行壓測時,複製模板重新命名,並把要壓測介面的enable修改為true,thread_num為傳入的數值;當然如果想傳入多個執行緒數也是可以的,但是介面只能傳1個

執行命令:run ***介面 100 200 300

完整**如下,同樣是放在.bashrc裡的

pull(

)push(

)killjmeter()'

` echo

"jmeter id list :$pid"if[

["$pid"=""

]]then

echo

"no jmeter pid alive"

else

kill -9 $pid

echo

"**********===壓測程序已停止**********==="fi}

report(

) -e -o "./$"

done

}export i=1

is_report_exit(

)select_api()'

` new_string=

`grep $1 $1.jmx |

sed's/false/true/g'

` sed -i "$d"

$1.jmx

sed -i "$i $"

$1.jmx

}run(

)

robot framework 介面自動化測試

介面測試比ui測試更有價值,如果專案時間緊張,測試介面更好一些,但每次都頻繁的手工填寫介面進行測試也浪費時間,下面給大家介紹一下很好的自動化測試框架robot framework,並且做介面自動化測試事半功倍。其返回值驗證和與資料庫連線進行增刪改查很方便,邏輯也很嚴謹,如果公司沒有造輪子推薦這麼做。...

Robotframework 介面自動化測試

1.目的 1 以雲平台為例 實現註冊 登入 更新apikey 新增專案 新增裝置 新增感測器 新增執行器 感測器每隔3s上報一次資料 1分鐘後與雲平台主動斷開連線的介面自動化測試。2 斷言每條用例是否執行成功。3 程式不管執行多少次都不報錯。2.robotframework環境搭建 1 安裝pyth...

python requests介面自動化測試 一

python requests環境部署 1.安裝python,配置系統環境變數 4.安裝requests庫 pip install requests 在進行介面自動化測試時,常用到的幾個requests庫方法。如下 get 不帶引數的請求 n requests.get 帶引數的請求 引數是以字典的形...