wrk post lua脚本取excel参数压力测试,判断接口性能

简介: wrk post lua脚本取excel参数压力测试,判断接口性能

在使用wrk进行压力测试时,可以通过Lua脚本获取Excel参数,并进行POST请求。下面是一个使用Lua脚本获取Excel参数,并进行POST请求的示例:


1. 假设有一个参数Excel文件params.xlsx,格式如下:

    | param1   | param2   |
    | :------: | :------: |
    | value1   | value2   |
    | value3   | value4   |


    2. 在Lua脚本中,使用luawin32库读取Excel文件内容,并将内容转为字符串。使用Lua的lunajson库将字符串转为JSON格式,并发送POST请求。

    -- 引入所需库
    local json = require("lunajson")
    local luawin32 = require("luawin32")
    -- 读取Excel中的参数
    function read_params()
       local excel = luawin32.new("Excel.Application")
       local workbook = excel:Workbooks():Open("params.xlsx")
       local worksheet = workbook:Worksheets(1)
       local params = {}
       for row=1,2 do
          local param1 = worksheet:Cells(row, 1):Value2()
          local param2 = worksheet:Cells(row, 2):Value2()
          params[param1] = param2
       end
       workbook:Close(false)
       excel:Quit()
       return params
    end
    -- 构造POST请求
    function request()
       local params = read_params()
       local headers = {}
       headers["Content-Type"] = "application/json"
       local body = json.encode(params)
       return wrk.format("POST", "/test", headers, body)
    end



    在这个例子中,我们使用了luawin32库读取Excel文件内容,并将内容转化为表格形式的参数。接着,我们使用Lua的lunajson库将参数表格转为JSON字符串。最后,我们使用wrk.format()函数构造POST请求,并将请求头,请求体以及POST请求的路径信息传递给该函数。


    可以使用以下命令行参数来执行上述测试:



      wrk -t10 -c100 -d20s -s test.lua http://example.com



      其中,test.lua为包含上述代码的Lua脚本文件名,http://example.com为测试目标主机名。这将使用10个线程和100个连接,测试20秒,并执行Lua脚本以模拟发送POST请求。


      目录
      相关文章
      |
      9月前
      |
      测试技术 Linux
      VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
      NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
      707 3
      |
      9月前
      |
      测试技术 UED 开发者
      性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
      性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
      |
      9月前
      |
      存储 测试技术 API
      数据驱动开发软件测试脚本
      今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
      370 0
      |
      11月前
      |
      Web App开发 JavaScript 测试技术
      Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
      本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
      |
      缓存 NoSQL 搜索推荐
      【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
      本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
      832 6
      【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
      |
      前端开发 JavaScript 测试技术
      使用ChatGPT生成登录产品代码的测试用例和测试脚本
      使用ChatGPT生成登录产品代码的测试用例和测试脚本
      452 35
      |
      数据可视化 JavaScript 前端开发
      利用Postman和Apipost进行API测试的实践与优化-动态参数
      在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
      |
      数据可视化 JavaScript 前端开发
      从Postman到Apipost:我的动态参数测试实战踩坑记
      作为一名全栈开发工程师,在开发用户中心模块时,我遇到了复杂参数API测试的挑战。最初使用Postman时,发现其在生成动态参数(如邮箱、手机号和日期)时存在诸多问题,导致测试效率低下甚至出错。例如,随机生成的邮箱格式无效等 后来,CTO推荐了Apipost,它提供了更智能的参数生成方式:支持真实邮箱、符合规范的手机号以及合法日期范围,极大提升了测试效率和准确性。通过对比,Apipost在处理复杂动态参数方面明显优于Postman,减少了维护成本并提高了团队协作效率。现在,我们已全面切换到Apipost,并利用其「参数组合测试」功能发现了多个边界条件bug。
      |
      前端开发 JavaScript Java
      通过ChatGPT生成测试用例和测试脚本(2)
      通过ChatGPT生成测试用例和测试脚本
      500 21
      |
      NoSQL Redis 数据库
      Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
      通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
      1109 13

      热门文章

      最新文章