wrk的高级应用总结

本文介绍了WRK作为一个高性能http压力测试工具的高级应用,包括使用Lua进行功能扩展,详细讲解了lua脚本中的init、request、response、done等函数,以及如何构造不同请求场景,如GET请求、POST请求以及从文件读取uri进行测试。
摘要由CSDN通过智能技术生成

WRK高级应用简介:

基于事件机制的高性能http压力测试工具,除了能针对单个url进行测试外,最重要的就是能够构造不同的url、不同的参数进行测试,发送携带body的POST请求。

wrk 公共lua API
  1. init = function(args)
  2. request = function()
  3. response = function(status, headers, body)
  4. done = function(summary,latency, requests)
  5. 全局变量wrk
    wrk = {
    	  scheme  = "http",
    	  host    = "localhost",
    	  port    = nil,
    	  method  = "GET",
    	  path    = "/",
    	  headers = {},
    	  body    = nil
    	}
    
lua脚本

wrk功能高级的地方在于使用luajit进行自定义功能扩展,使用自定义函数构造不同的请求场景,常用的函数有:

  • function setup(thread) 在创建线程时调用,wrk会为每一个测试线程调用一次setup方法,并传入代表测试线程的对象thread作为参数。setup方法中可操作该thread对象,获取信息、存储信息、甚至关闭该线程。
  • function init(args) 在线程启动时调用一次
  • function delay() 在每次发送request之前调用
  • function request() 用来生成请求,每一次请求都会调用该方法,所以不要在这里写入耗时的操作,如果复杂的请求,在init函数就构造好,这里直接引用。
  • function response(status, headers,body) 在每次收到一个响应时调用;为提升性能,如果没有定义该方法,那么wrk不会解析headers和body
  • function done(summary, latency,requests) 该方法在整个测试过程中只会调用一次,可从参数给定的对象中,获取压测结果,生成定制化的测试报告。
自定义脚本中可访问的变量和方法:

变量wrk是一个table类型的全局变量,若修改改table,则会影响所有的请求。
wrk = {}

function wrk.format(method, path, headers, bod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值