(余胜军喊你压测他的网站)都2023年了, 你还不会使用nodejs对项目压力测试? |
您所在的位置:网站首页 › npm安装不了 › (余胜军喊你压测他的网站)都2023年了, 你还不会使用nodejs对项目压力测试? |
背景
前些天刷抖音,看到网传的java继父,求人攻击压测他的网站,兄弟们这不得摩拳擦掌。 所以今天来聊聊如何对自己的项目、接口进行压力测试。 压力测试的目的首先啊, 绝对不是为了压测、攻击别人的网站为乐。 1、探索线上系统流量承载的极限。 2、保障咱们这线上系统具备一定抗压能力 工具autocannon 中文译为 自动炮, 是一款基于nodejs的压力测试工具,支持命令行和写代码来进行测试 npm 地址 www.npmjs.com/package/aut… 因为我是前端所有选择了这个。 其他诸如 ab、webbench均可。 压力测试 安装全局安装autocannon npm i autocannon -g 复制代码 命令行使用 执行 autocannon -c 100 -d 5 -p 1 https://appvxnsma4r5053.pc.xiaoe-tech.com/ 复制代码 命令解释上述命令解释: 用100个连接、持续5秒去访问 https://appvxnsma4r5053.pc.xiaoe-tech.com/ 执行示例截图-c/--connections NUM 并发连接的数量,默认10 -p/--pipelining NUM 每个连接的流水线请求请求数。默认1 -d/--duration SEC 执行的时间,单位秒 -m/--method METHOD 请求类型 默认GET -b/--body BODY 请求报文体 -H/--header 请求头 写代码压测命令行呢,执行简单的压力测试还好, 复杂一点,还是建议写脚本. 例如 1、对后端接口进行压力测试我举例一个场景, 比如你想对某新增接口的短时间内大量 新增测试, 就可以来试试。 创建一个js文件 例如 touch app.js 复制代码 从调试工具network复制fetch将上一步复制出来的信息,悉数填在下面。 const autocannon = require('autocannon') autocannon({ url: '你的接口', "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization": "", "cookie": "acw_tc=0bca324216820466206848044ebf9191e5a0e4b89a4e9bc8b18e333d13f537", "Referrer-Policy": "strict-origin-when-cross-origin" }, "body": "你的参数", "method": "POST", // 你接口的methods get / post connections: 10, // 连接数 pipelining: 1, // 流水线数量 duration: 10 // 持续时间 }, console.log) 复制代码 执行测试 node app.js 复制代码执行后发现压力测试执行了三千多次,创建了三千多个任务, 后端接口直接响应变成了30秒。 如此就找到了一个问题。 手动创建这三千个创到什么时候,还得借助工具。 测试是不有jemeter等工具也能做? 假如你想每天指定时间 来对自己的项目进行压力测试。 那么你可以把上述逻辑写成一个方法 参照这篇juejin.cn/post/716360… 定时去执行它, 这样就可以愉快的定时压测自己项目了, 你学废了吗? 如何不被发现有时候,有没有一种可能,你不想被同事发现,你压测了自己的项目。 那么就不能暴露自己ip。 建议不要使用公司的网络, 使用其他网络进行。 vpn带宽够的话也是不错的选择, 这样日志里都是香港、新加坡的ip, 同事们一头雾水。 或者在云服务器上执行, 访问日志就是云服务器的IP。 如何发现咱系统的突破口前端静态页面没啥可看的。 找能拉高瓶颈的点, 必须大量计算的拉高cpu, 数据库磁盘的IO 建议啊,打开咱项目,看咱后端接口, 最好是增删改的, 找那种响应相对比较慢的, 这种应该逻辑比较复杂, 去测试它, 不出意外,同样并发,压测这个,cpu肯定飙的更高一些, 这样就能发现咱系统一些问题。 如何压测自己项目的时候查看可用情况众所周知,如果压测的并发数比较高,你本地的带宽基本被榨干,此时本地你访问项目,可用情况是不准确的! 所以最好有两台电脑, 或者有一台服务器。 一台执行测试自己的项目,另外一台看看能否正常访问,是不是崩了, 没崩说还没到咱们系统的极限,可以尝试加大压力。 压测没给到压力?咱们是流量压测 属于DDOS 1、自身机器配置和网络带宽也是瓶颈, 倘若你本地带宽较小、机器配置也比较拉, 比如你设置10000qps, 你的机器资源有限,根本一秒钟发不出这么多, 那必然。。。。 加机器 加带宽吧 哥们。 2、 目标有昂贵的高仿服务器进行流量清洗、异常流量拦截, 你没有直接打到源站。 最后压力测试可以模拟大量用户访问, 来测试我们应用的承载能力, 可以帮助我们提前发现问题和瓶颈,早早制定应对措施。 最后 大家不要对别的人网站随意压测呦。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |