一、post 请求,动态传参数,只有body参数不同:
startpost.lua 脚本:
loginmap = {}
counter = 0
--初始化方法
function init(args)
--循环取文件里的每一行数据
for line in io.lines("/data/cmp/wrk/scripts/uploadFile/startparam.txt") do
-- print(line)
loginmap[counter] = line
counter = counter + 1
end
counter = 0
end
--执行的主方法
request = function()
local body1 = '[{"layerDefinitionVersion":"V1.0.0","layerName":"poi","partitionNames":[{'
local body2 = '}]}]'
print(counter)
print("长度:",table.getn(loginmap))
counter = counter+1
print("++:",counter)
if( counter < 13 )
then
parms = loginmap[counter-1]
-- print(parms)
--接口地址后面可以配置多个参数
path = "/dataaccess/upload/transaction/data/start?productVersion=latest"
method = "POST"
wrk.headers["Content-Type"] = "application/json"
wrk.headers["clientId"] = "103"
wrk.headers["orgId"] = "1"
return wrk.format(method,path,wrk.headers,parms)
end
print("countera 的值为:并结束请求", counter); --日志打印
end
--接口返回值设置并打印
a=1
function response(status, headers, body)
if(true) -- 执行的每一次方法都打印返回值
then
-- a=2
print(body)
end
print(status) --打印状态
end
startparams.txt 为body字符串格式的参数,类似:
[{"layion":"V1.0.0","layerName":"poi","paames":[{"adminCodes":[110116],"paame":"557469151"}]}]
[{"laysion":"V1.0.0","layerName":"poi","paames":[{"adminCodes":[110116],"parame":"557469152"}]}]
执行命令:
命令:wrk -t1 -c1 -d1s -s /data/cmp/wrk/scripts/uploadFile/startpost.lua --latency http://data-acc-port.xnuk.cloud.app.o.com
返回值:
二、post 请求,动态传参数,body、请求地址或head参数均不同:
ts = {}
loginmap = {}
counter = 0
--初始化方法里面循环遍历两次,往不同数组里存放数据
function init(args)
for line in io.lines("/data/cmp/wrk/scripts/uploadFile/uploadparam.txt") do
-- print(" 遍历上传的参数",line)
loginmap[counter] = line
counter = counter + 1
end
counter = 0
for line in io.lines("/data/cmp/wrk/scripts/uploadFile/transparam.txt") do
print("遍历事务号:",line)
ts[counter] = line
counter = counter + 1
end
counter = 0
end
request = function()
print(counter)
print("长度:",table.getn(loginmap))
counter = counter+1
print("++:",counter)
if( counter < 13 )
then
parms = loginmap[counter-1]
--print("parms",parms)
transactionID = ts[counter-1]
print("transactionID",transactionID)
-- string.gsub(transactionID, "^%s*(.-)%s*$", "%1")
print("transactionID",transactionID)
local path = "/dataaccess/upload/transaction/data/batchUpload?transactionID=" .. transactionID
-- local path = "/dataaccess/upload/transaction/data/batchUploadAndCommit?transactionID=" .. "asa"
-- path = string.format(path,transactionID)
print("请求url:",path)
-- string.gsub(path, "^%s*(.-)%s*$", "%1")
print("去除空格后请求url:",path)
method = "POST"
wrk.headers["Content-Type"] = "application/json"
wrk.headers["clientId"] = "103"
wrk.headers["orgId"] = "1"
return wrk.format(method,path,wrk.headers,parms)
end
print("countera 的值为:并结束请求", counter);
end
a=1
function response(status, headers, body)
if(true)
then
-- a=2
print(body)
end
print(status)
end
命令类似如下:
wrk -t1 -c1 -d20s -s /data/cmp/wrk/scripts/uploadFile/commitpost.lua --latency http://data-access-port.new-dev.cloud.app.ncloud.navinfo.com
执行结果类似上一个方法,其他动态传参类似
今天分享到此结束,下次给大家介绍get请求,传动态参数,敬请期待!