[wrk] 壓力測試工具 - wrk

Ref: https://github.com/wg/wrk

基本的指令就不太多闡述,github裡面有
主要是需要在 wrk 送出時新增 header,
可以透過 -s 去呼叫自己寫的 .lua 腳本

現在有個情境,驗證時需要將其他變數md5並放入 header 中,該怎麼做?

範例:
-- 這行必須設定,因為 md5.lua 會放在同層目錄,方便引入
package.path = '/Users/neil/Desktop/all_projects/project/wrk/?.lua'

-- 引入同層的 md5.lua
md5 = require 'md5'


a = "a"
b = "b"

-- 取得系統時間
time = os.time()

-- 做 md5, 字串串接是使用 ..
checksum = md5.sumhexa(a .. b .. time)
wrk.method = "POST"

wrk.headers["time"] = time
wrk.headers["checksum"] = checksum
wrk.headers["a"] = a
wrk.headers["b"] = b
wrk.headers["Content-Type"] = "application/json"

-- 以下是將 response 寫入到檔案中
-- file = io.open('/Users/neil/Desktop/all_projects/project/test.log', 'a')
-- io.output(file)

-- response = function(status, header, body)
--  -- io.write("status:" .. status .. "\n");
--  io.write(body .. "\n");
-- end

-- done = function(summary, latency, requests)
--  io.write("------------- SUMMARY -------------\n")
-- end

使用時就是:

wrk -t6 -c1200 -d20s http://api.com/api/v1/m/auth -s wrk/authenticate.lua --latency
底下附上 md5.lua 的 repo
https://github.com/kikito/md5.lua
https://github.com/kikito/md5.lua/blob/master/md5.lua


留言

張貼留言

這個網誌中的熱門文章

[MySQL] schema 與資料類型優化

[翻譯] 介紹現代網路負載平衡與代理伺服器