当前位置: 首页 > news >正文

Rewrk一个更现代的http框架基准测试实用程序

Rewrk一个更现代的http框架基准测试实用程序。HTTP基准测试(HTTP benchmarking)是一种测量和评估HTTP服务器或应用程序性能指标的活动。其目的是在特定条件下模拟大量用户请求,以测量服务器或应用程序的响应能力、吞吐量、延迟等指标,从而评估其性能表现。HTTP基准测试通常使用专门的测试工具,如Apache Bench(ab)、JMeter、LoadRunner等,模拟多个客户端同时向服务器发送请求,并测量服务器的响应时间、并发处理能力等关键指标。通过这些测试,可以了解服务器或应用程序在不同负载下的性能表现,并找出可能存在的性能瓶颈或问题。在进行HTTP基准测试时,需要设置适当的测试参数,如并发用户数、请求类型、请求数据量等,以模拟真实的用户行为。同时,还需要对测试结果进行分析和解读,以了解服务器或应用程序的性能瓶颈和优化方向。

快速上手

 
  1. rewrk -h http://127.0.0.1:5000 -t 12 -c 60 -d 5s

  2. Benchmarking 60 connections @ http://127.0.0.1:5000 for 5 seconds

  3. Latencies:

  4. Avg Stdev Min Max

  5. 3.27ms 0.40ms 1.95ms 9.39ms

  6. Requests:

  7. Total: 91281 Req/Sec: 18227.81

  8. Transfer:

  9. Total: 1.13 MB Transfer Rate: 231.41 KB/Sec

这个项目背后的动机来自开发人员对 TechEmpower等基准测试的隧道愿景,(TechEmpower是一个Web Framework Benchmarks测试平台,该平台对世界上各大Web框架进行功能测试,并提供一个综合排名。从2013年3月开始,这个平台已经进行了18轮测试,参与框架的数量也从最初的24种增加到了659种。)这些基准测试使用名为 wrk 的基准测试工具.wrk 只处理一些 HTTP 规范,并且完全偏向于可以大量使用 HTTP/1 流水线的框架和服务器,这在大多数现代浏览器或客户端中不再启用,这可能会在比较框架时给出一组非常不公平和不合理的统计数据,因为顶部的框架更擅长使用现在不常用的进程。基准测试器建立在 hyper 的客户端 api 之上,并带来了许多优势和更现实的基准测试方法。
当前功能
  • 支持 HTTP/1 和 HTTP/2

  • 多平台支持,在 Windows 上开发,但也可以在 Mac 和 Linux 上运行。

USAGE:
     rewrk.exe [FLAGS] [OPTIONS] --duration <duration> --host <host>

FLAGS:
         --help       Prints help information
         --http2      Set the client to use http2 only. (default is http/1) e.g. '--http2'
         --pct        Displays the percentile table after benchmarking.
     -V, --version    Prints version information

OPTIONS:
     -c, --connections <connections>    Set the amount of concurrent e.g. '-c 512' [default: 1]
     -d, --duration <duration>          Set the duration of the benchmark.
     -h, --host <host>                  Set the host to bench e.g. '-h http://127.0.0.1:5050'
     -t, --threads <threads>            Set the amount of threads to use e.g. '-t 12' [default: 1]

Rust环境安装

大家在安装rust时,大多数同学是参考官方文档执行脚本安装,脚本如下:

curl https://sh.rustup.rs -sSf | sh

但是因为某些原因,在国内执行上面 该脚本会被墙掉,然后终端就一直没有下载进度

➜ ~ curl https://sh.rustup.rs -sSf | sh info: downloading installer

  • 为了可以正常执行,可以配置下镜像源,加速rust下载、安装。终端配置如下命令:

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

  • 接着执行官方文档的下载脚本:

curl https://sh.rustup.rs -sSf | sh

Cargo Install 使用 Cargo 安装

cargo install rewrk --git https://github.com/ChillFish8/rewrk.git

CentOS安装

除了gcc,还需要

yum install -y openssl-devel

从源代码编译

cargo build –release

实践

./rewrk -h http://172.21.44.1:18193/ws/logout -t 12 -c 60 -d 10s

Beginning round 1...

Benchmarking 60 connections @ http://172.21.44.1:18193/ws/logout for 10 second(s)

Latencies:

Avg Stdev Min Max

10.06ms 9.81ms 0.55ms 118.18ms

Requests:

Total: 59559  Req/Sec: 5955.74

Transfer:

Total: 18.18 MB Transfer Rate: 1.82 MB/Sec

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

相关文章:

Rewrk一个更现代的http框架基准测试实用程序

Rewrk一个更现代的http框架基准测试实用程序。HTTP基准测试&#xff08;HTTP benchmarking&#xff09;是一种测量和评估HTTP服务器或应用程序性能指标的活动。其目的是在特定条件下模拟大量用户请求&#xff0c;以测量服务器或应用程序的响应能力、吞吐量、延迟等指标&#xf…...

【算法】排序算法介绍 附带C#和Python实现代码

1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 归并排序(Merge Sort) 5. 快速排序(Quick Sort) 排序算法是计算机科学中的一个基础而重要的部分,用于将一组数据按照一定的顺序排列。下面介绍几种常见的排序算法,…...

360安全浏览器就是不行-python秒破解

下面画框都很容易破解&#xff0c;大家试试...

Python实现傅里叶级数可视化工具

Python实现傅里叶级数可视化工具 flyfish 有matlab实现&#xff0c;我没matlab&#xff0c;我有Python&#xff0c;所以我用Python实现。 整个工具的实现代码放在最后,界面使用PyQt5开发 起源 傅里叶级数&#xff08;Fourier Series&#xff09;由法国数学家和物理学家让-巴…...

PDF 分割拆分 API 数据接口

PDF 分割拆分 API 数据接口 文件处理&#xff0c;PDF 高效的 PDF 分割工具&#xff0c;高效处理&#xff0c;可永久存储。 1. 产品功能 高效处理大文件&#xff1b;支持多语言字符识别&#xff1b;支持 formdata 格式 PDF 文件流传参&#xff1b;支持设置每个 PDF 文件的页数…...

【python】随机森林预测汽车销售

目录 引言 1. 数据收集与预处理 2. 划分数据集 3. 构建随机森林模型 4. 模型训练 5. 模型评估 6. 模型调优 数据集 代码及结果 独热编码 随机森林模型训练 特征重要性图 混淆矩阵 ROC曲线 引言 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法…...

Stable Diffusion教程|练丹师是如何炼丹的Lora模型训练

前言 还记得我们之前就讲过学习SD成为炼丹师不&#xff1f;那么今天就来手把手教大家炼丹&#xff0c;看看同一个角色或某种风格的小模型是如何制作出来的。 目录 1 炼丹介绍 2 环境准备 3 Lora模型训练 **一、**炼丹介绍 什么是炼丹&#xff1f; 早在学习SD地第一篇就…...

QT--SQLite

配置类相关的表&#xff0c;所以我使用sqlite,且QT自带该组件&#xff1b; 1.安装 sqlite-tools-win-x64-3460000、SQLiteExpert5.4.31.575 使用SQLiteExpert建好数据库.db文件&#xff0c;和对应的表后把db文件放在指定目录 ./db/program.db&#xff1b; 2.选择sql组件 3.新…...

【深度学习入门篇 ②】Pytorch完成线性回归!

&#x1f34a;嗨&#xff0c;大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; )&#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙&#xff1a;一个帮助编程小…...

Syslog 管理工具

Syslog常被称为系统日志或系统记录&#xff0c;是一种用来在互联网协议&#xff08;TCP/IP&#xff09;的网上中传递记录档消息的标准&#xff0c;常用来指涉实际的Syslog 协议&#xff0c;或者那些提交syslog消息的应用程序或数据库。 系统日志协议&#xff08;Syslog&#x…...

硅纪元AI应用推荐 | 百度橙篇成新宠,能写万字长文

“硅纪元AI应用推荐”栏目&#xff0c;为您精选最新、最实用的人工智能应用&#xff0c;无论您是AI发烧友还是新手&#xff0c;都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能&#xff0c;开启智慧新时代&#xff01; 百度橙篇&#xff0c;作为百度公司在202…...

Codeforces Round 954 (Div. 3)

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;彩笔ACMer一枚。 &#x1f3c0;所属专栏&#xff1a;Codeforces 本文用于记录回顾本彩笔的解题思路便于加深理解。 &#x1f4e2;&#x1f4e2;&#x1f4e2;传送阵 A. X Axis解…...

【Django】报错‘staticfiles‘ is not a registered tag library

错误截图 错误原因总结 在django3.x版本中staticfiles被static替换了&#xff0c;所以这地方换位static即可完美运行 错误解决...

LeetCode 算法:二叉树的最近公共祖先 III c++

原题链接&#x1f517;&#xff1a;二叉树的最近公共祖先 难度&#xff1a;中等⭐️⭐️ 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点…...

Windows CMD 命令汇总表

Windows CMD 命令汇总表 Windows CMD 命令汇总表目录操作磁盘操作文件操作其他命令FTP 命令高级系统命令批处理命令网络命令安全和权限命令 Windows CMD 命令指南目录操作MD - 创建子目录CD - 切换当前目录RD - 删除子目录DIR - 显示目录内容PATH - 设置可执行文件的搜索路径TR…...

【python+appium】自动化测试

pythonappium自动化测试系列就要告一段落了&#xff0c;本篇博客咱们做个小结。 首先想要说明一下&#xff0c;APP自动化测试可能很多公司不用&#xff0c;但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的&#xff0c;所以为了更好的待遇&#xff0c;我们还…...

vue 数据类型

文章目录 ref 创建&#xff1a;基本类型的响应式数据reactive 创建&#xff1a;对象类型的响应式数据ref 创建&#xff1a;对象类型的响应式数据ref 对比 reactive将一个响应式对象中的每一个属性&#xff0c;转换为ref对象(toRefs 与 toRef)computed (根据计算进行修改) ref 创…...

MySQL(基础篇)

DDL (Data Definition Language) 数据定义语言&#xff0c;用来定义数据库对象(数据库&#xff0c;表&#xff0c; 字段) DML (Data Manipulation Languag) 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 DQL (Data Query Language) 数据查询语言&#xff0c;用…...

springboot中通过jwt令牌校验以及前端token请求头进行登录拦截实战

前言 大家从b站大学学习的项目侧重点好像都在基础功能的实现上&#xff0c;反而一个项目最根本的登录拦截请求接口都不会写&#xff0c;怎么拦截&#xff1f;为什么拦截&#xff1f;只知道用户登录时我后端会返回一个token&#xff0c;这个token是怎么生成的&#xff0c;我把它…...

从零开始开发视频美颜SDK:实现直播美颜效果

因此&#xff0c;开发一款从零开始的视频美颜SDK&#xff0c;不仅可以节省成本&#xff0c;还能根据具体需求进行个性化调整。本文将介绍从零开始开发视频美颜SDK的关键步骤和实现思路。 一、需求分析与技术选型 在开发一款视频美颜SDK之前&#xff0c;首先需要进行详细的需求…...

OpenClaw+gemma-3-12b-it自动化数据清洗:从杂乱Excel到规整数据库

OpenClawgemma-3-12b-it自动化数据清洗&#xff1a;从杂乱Excel到规整数据库 1. 为什么需要自动化数据清洗 上周我接手了一个市场调研项目&#xff0c;客户发来的原始数据让我头皮发麻——12个Excel文件&#xff0c;总计超过3万条记录&#xff0c;充斥着格式混乱的日期、缺失…...

一站式图像生成与编辑:Nano Banana 图像生成与编辑 API(包含多个示例和实用技巧)

在电商、时尚内容、网红营销或产品视觉设计领域&#xff0c;你是否曾面临以下挑战&#xff1f; 如何快速为同一肖像尝试多套服装&#xff1f;如何快速生成相同产品在不同场景/风格下的图像&#xff1f;如何将多个来源的材料合成一张“看起来真实”的图像&#xff1f; Ace Dat…...

C++的std--ranges中的策略内联编译器

C的std::ranges中的策略内联编译器&#xff1a;高效编程的新利器 在现代C编程中&#xff0c;std::ranges库的引入为算法和范围操作带来了革命性的改进。其中&#xff0c;策略内联编译器作为其核心优化手段之一&#xff0c;能够显著提升代码执行效率。本文将深入探讨这一技术的…...

c++编程:说反话(1009-PAT乙级)

1009&#xff1a;说反话cin >> 读取字符串时不能读取空格string s; cin >> s; // 输入 "hello world" cout << s; // 输出 "hello"&#xff08;空格后面的被丢弃&#xff09;如何读取带空格的整行&#xff1f;getline()str…...

newTimer嵌入式定时器库:跨平台非阻塞延时与状态机设计

1. newTimer 定时器库深度解析&#xff1a;跨平台嵌入式精准延时与状态管理方案1.1 库定位与工程价值newTimer是一个轻量级、高度可移植的 C 定时器抽象库&#xff0c;专为资源受限的嵌入式微控制器设计。其核心价值不在于替代硬件定时器外设&#xff0c;而在于提供统一、语义清…...

Python移动开发终极指南:5分钟学会用python-for-android打包Android应用

Python移动开发终极指南&#xff1a;5分钟学会用python-for-android打包Android应用 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 你是否想用熟悉的Python语…...

Comsol光子晶体光纤模式分析之FSM Mode计算

Comsol光子晶体光纤模式分析&#xff0c;fsm mode计算在光学领域&#xff0c;光子晶体光纤以其独特的光学特性吸引着众多研究者的目光。而在对光子晶体光纤进行深入研究时&#xff0c;模式分析是至关重要的一环&#xff0c;其中FSM&#xff08;Full Vectorial Finite Element M…...

8086 汇编报错全总结与归纳

一、可能遇到的所有错误汇总错误代码错误含义触发行&#xff08;你的代码&#xff09;核心根源A2048Must be index or base registermov [ax],1H、add [dx],[ax]8086 硬件不支持用非BX通用寄存器做内存间接寻址A2035Operand must have sizemov [bx],1H汇编器无法判断操作数是 8…...

2026届学术党必备的六大AI科研工具解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一键生成论文功能通过借助先进人工智能算法得以达成&#xff0c;它可依照用户输入的标题&am…...

【枕上节令笺】清明食青团,一口咬尽江南春

最近下班有时间&#xff0c;都在捣鼓公众号文章&#xff0c;之前的两天一直沉迷于改主题、改完主题改内容排版、最后发现文章偏离主题写的太杂了&#xff0c;奈何语文水平太久没用了&#xff0c;就想到用写技术博客的总分总的写法去表诉文章…有热爱或想写公众号的同学一起交流…...