wrk 压测post请求遍历循环动态参数

一、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请求,传动态参数,敬请期待!

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值