在Linux里wrk的路径,wrk中的lua脚本

wrk是一款现代化的http压测工具,提供lua脚本的功能可以满足每个请求或部分请求的差异化。

wrk中执行http请求的时候,调用lua分为3个阶段,setup,running,done,每个wrk线程中都有独立的脚本环境。

970528889.png

wrk的全局属性wrk = {

scheme = "http",

host = "localhost",

port = nil,

method = "GET",

path = "/",

headers = {},

body = nil,

thread = ,

}

wrk的全局方法-- 生成整个request的string,例如:返回

-- GET / HTTP/1.1

-- Host: tool.lu

function wrk.format(method, path, headers, body)

-- 获取域名的IP和端口,返回table,例如:返回 `{127.0.0.1:80}`

function wrk.lookup(host, service)

-- 判断addr是否能连接,例如:`127.0.0.1:80`,返回 true 或 false

function wrk.connect(addr)

Setup阶段

setup是在线程创建之后,启动之前。function setup(thread)

-- thread提供了1个属性,3个方法

-- thread.addr 设置请求需要打到的ip

-- thread:get(name) 获取线程全局变量

-- thread:set(name, value) 设置线程全局变量

-- thread:stop() 终止线程

Running阶段function init(args)

-- 每个线程仅调用1次,args 用于获取命令行中传入的参数, 例如 --env=pre

function delay()

-- 每个线程调用多次,发送下一个请求之前的延迟, 单位为ms

function request()

-- 每个线程调用多次,返回http请求

function response(status, headers, body)

-- 每个线程调用多次,返回http响应

Done阶段

可以用于自定义结果报表,整个过程中只执行一次function done(summary, latency, requests)

latency.min -- minimum value seen

latency.max -- maximum value seen

latency.mean -- average value seen

latency.stdev -- standard deviation

latency:percentile(99.0) -- 99th percentile value

latency(i) -- raw value and count

summary = {

duration = N, -- run duration in microseconds

requests = N, -- total completed requests

bytes = N, -- total bytes received

errors = {

connect = N, -- total socket connection errors

read = N, -- total socket read errors

write = N, -- total socket write errors

status = N, -- total HTTP status codes > 399

timeout = N -- total request timeouts

}

}

例子

表单的提交wrk.method = "POST"

wrk.body = "" -- 直接写死,如果不需要请求数据的差异化

wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"

-- 如果要实现每次都不一样的表单内容

local queries = {

"language=php",

"language=java",

"language=lua"

}

local i = 0

request = function()

local body = wrk.format(nil, nil, nil, queries[i % #queries + 1])

i = i + 1

return body

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值