K6性能測試工具的使用入門
"""
之前偶然聽到k6這款便捷的性能測試工具,好奇之下就用來玩了一下,結(jié)果真的不懶,做一些單接口的壓測完全夠用了,
所以寫下這個(gè)介紹文檔,第一是自己做一個(gè)筆記,第二是為有需要的朋友簡單介紹一下,方便快速上手。
"""
簡介
k6是高性能的負(fù)載測試工具,也是一種高性能工具,旨在在預(yù)生產(chǎn)和QA環(huán)境中以高負(fù)載運(yùn)行測試,可使用JavaScript編寫腳本。它是一個(gè)以開發(fā)人員為中心(當(dāng)然,測試人員亦可以使用,因?yàn)檎娴暮芊奖悖赓M(fèi)和開源的負(fù)載測試工具,旨在使性能測試具有生產(chǎn)力和令人愉悅的體驗(yàn),可最大程度地減少系統(tǒng)資源的消耗。官網(wǎng):https://k6.io/
安裝與運(yùn)行
以window系統(tǒng)為例,到官網(wǎng)下載最新版本,根據(jù)安裝提示默認(rèn)安裝即可。安裝完成后在命令窗口輸入:K6,檢測是否安裝成功。出現(xiàn)如下圖就是成功了:

執(zhí)行腳本的只需要在輸入:k6 run +腳本名。如下圖:

執(zhí)行完成后會在界面給出測試結(jié)果:

將測試結(jié)果保存到指定的位置:

HTTP請求
k6可以使用JavaScript進(jìn)行快速的編寫腳本,對有前端經(jīng)驗(yàn)的同學(xué)特別友好,我在實(shí)際的使用過程中也是使用的JavaScript進(jìn)行編寫。下面簡單舉兩個(gè)常見請求類型的例子。
GET請求
如圖所示,k6的請求方式和其他工具的接口請求方式并無太大的區(qū)別,只需要導(dǎo)入 ?import http from 'k6/http';; ?按照js的語法依次傳入U(xiǎn)RL,header即可。

POST請求
post請求如下圖所示,依次傳入U(xiǎn)RL,傳參,header即可。

斷言設(shè)置
K6的斷言個(gè)人認(rèn)為是比較簡潔的,導(dǎo)入check()后即可,而且一個(gè)check()可以添加多個(gè)斷言。

設(shè)置并發(fā)
k6中有兩種設(shè)置并發(fā)、運(yùn)行時(shí)間的方法。
第一種是在命令行內(nèi):

第二種是在腳本內(nèi):

K6還有支持更多的條件設(shè)置,請閱讀官網(wǎng)文檔。
cookie設(shè)置
k6有多種的cookie的寫法,如圖是能夠快速入手的寫法:

測試結(jié)果

其中iteration_duration中,我們可以看到平均消耗時(shí)間,最大最小,以及百分之90請求所用時(shí)間等,這點(diǎn)與jmeter相識。
其他操作
在K6執(zhí)行測試任務(wù)時(shí),我們可以再次打開一個(gè)新的命令窗口來控制測試的暫停測試等操作:

k6 pause?-暫停測試執(zhí)行,暫停所有VU
k6 resume?-取消暫停k6,導(dǎo)致所有活動的VU恢復(fù)執(zhí)行
k6 scale?-更改活動VU的數(shù)量(或允許的最大VU數(shù)量)
k6 stats?-報(bào)告當(dāng)前已收集的統(tǒng)計(jì)信息
k6 status?-報(bào)告測試的一般狀態(tài)



一碼不掃,
可以掃天下?添加小編進(jìn)自學(xué)群
獲取更多學(xué)習(xí)資源

