开源的负载测试/压力测试工具 NBomber
负载测试和压力测试对于确保 web 应用的性能和可缩放性非常重要。 尽管它们的某些测试是相同的,但目标不同。
负载测试:测试应用是否可以在特定情况下处理指定的用户负载,同时仍满足响应目标。 应用在正常状态下运行。
压力测试:在极端条件下(通常为长时间)运行时测试应用的稳定性。 测试会对应用施加高用户负载(峰值或逐渐增加的负载)或限制应用的计算资源。
压力测试可确定压力下的应用是否能够从故障中恢复,并正常返回到预期的行为。 在压力下,应用不会在正常状态下运行。
NBomber是一个开源的 .NET 框架,开源协议是Apache 2.0, NBomber 用于对多种服务进行负载测试,包括 Web、消息队列、数据库等。 今年5月份发布了 NBomber 2.0版本。 NBomber 类似于JMeter,但是和JMeter 不一样的地方是, NBomber 是通过C# 代码来表达测试场景。
- NBomber 背后的主要原因是为编写负载测试提供了一个轻量级框架,您可以使用它来测试任何系统并模拟任何生产工作负载。我们只想提供一些抽象,以便我们可以描述任何类型的负载,并且仍然有一个简单、直观的 API。
- 另一个目标是提供构建块,通过应用任何复杂的负载分布来验证您的 POC(概念验证)项目。
- 使用 NBomber,您可以测试任何 PULL 或 PUSH 系统(HTTP、WebSockets、GraphQl、gRPC、SQL Databse、MongoDb、Redis 等)。
- 使用 NBomber,您可以轻松地将一些集成测试转换为负载测试。
NBomber 作为一个现代框架提供:
- 零依赖协议(HTTP/WebSockets/AMQP/SQL)
- 对语义模型的零依赖(Pull/Push)
- 非常灵活的配置和非常简单的 API (F#/C#/JSON)
- 集群支持
- 实时报告
- CI/CD 集成
- 数据馈送支持
NBomber的使用 比较简单,跟着入门文档走一遍就学会了 :https://nbomber.com/docs/overview
1、创建一个控制台程序
dotnet new console -n NBomberTest -lang "C#"
cd NBomberTest
2、添加NBomber包
dotnet add package NBomber
3、创建 hello world 负载测试
让我们先从一个空的 hello world 开始,以便更熟悉 NBomber。在这个例子中,我们将定义一个简单的 步骤 和 场景,它什么都不做。
using System;
using System.Threading.Tasks;
using NBomber.Contracts;
using NBomber.CSharp;
namespace NBomberTest
{
class Program
{
static void Main(string[] args)
{
// first, you need to create a step
var step = Step.Create("step", async context =>
{
// you can define and execute any logic here,
// for example: send http request, SQL query etc
// NBomber will measure how much time it takes to execute your logic
await Task.Delay(TimeSpan.FromSeconds(1));
return Response.Ok();
});
// second, we add our step to the scenario
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
}
}
}
4、运行负载测试


运行测试后,您将获得一份报告,放在F:\Samples\NBomberTest\reports\2021-07-18_12.04.89_session_57c6dcf0。
文件夹下有有4种格式(txt、csv、html、md)的报告,其中Html 页面的报告比较直观:

开源的负载测试/压力测试工具 NBomber的更多相关文章
- 使用 K6 来给你的服务做一次负载和压力测试吧
前言 负载测试,压力测试可以衡量服务是否是一个高可用,高性能的服务.负载测试能检验在不同的工作负荷下,服务的硬件消耗和响应,从而得到不同负载情况下的性能指标.压力测试能检验软硬件环境下服务所能承受的最 ...
- 利用Apach ab对nodejs进行并发负载的压力测试
大家应该都有听过,nodejs性能优越,并发也很好之类的话,那我们用Apache ab对node这个空框架测试一下,然后再对一些网站测试一下,或或少一定的参考意义把. Apache ab测试工具是模拟 ...
- Android App专项测试(压力测试)
转载https://blog.csdn.net/qq_29794757/article/details/64160303 转载https://blog.csdn.net/xuejiaodream/ar ...
- Apache JMeter开源压力测试/负载测试工具 2.12 官方最新版
软件介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用. 如何学 ...
- 压力测试+接口测试(工具jmeter)
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因 为jmeter是java开发的,所以运行的时候必须 ...
- 性能测试 vs 负载测试 vs 压力测试
在做一些软件测试工作时,常常会被提及性能测试.负载测试.压力测试,这也是在软件测试方面最容易混淆的三个概念.之前和一个测试大牛聊天,他和我说常常面试一些测试人员会问一些这样的问题,大多人认为负载测试等 ...
- jmeter之吞吐量、吞吐率、TPS、带宽及压力测试和负载测试及其区别
一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 “req/s”.吞吐率特指Web服务器单位时间内处理的请求数另一种描述,吞吐率是,单位时间内网络 ...
- 性能测试vs负载测试vs压力测试-概念普及
下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...
- loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明
(一) 下载和安装 下载:(没账号的话得先注册一个账号) https://software.microfocus.com/en-us/products/loadrunner-load-testin ...
随机推荐
- python中使用excutemany执行update语句,批量更新
python中使用excutemany执行update语句,批量更新 # coding:utf8 import pymysql import logging connection = pymysql. ...
- AI推理单元
AI推理单元 推理服务供了一套面向 MLU(Machine Learning Unit,机器学习单元)设备的类似服务器的推理接口(C++11标准),以及模型加载与管理,推理任务调度等功能,极大地简化了 ...
- 编写HSA内核
编写HSA内核 介绍 HSA提供类似于OpenCL的执行模型.指令由一组硬件线程并行执行.在某种程度上,这类似于 单指令多数据(SIMD)模型,但具有这样的便利:细粒度调度对于程序员而言是隐藏的,而不 ...
- Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从?
Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从? Where Is the Wide-Bandgap Market Going? 电力电子在采用宽禁带(WBG)器件(如 ...
- springboot——修改html实时生效,不用重启tomca(idea版)
第一步: 在全局配置文件(application.properties)中禁用thymeleaf模板引擎的缓存,缓存是默认开启的 spring.thymeleaf.cache=false 第二步: 在 ...
- linux用户组添加和权限的设置
1.useradd 添加用户 useradd [选项]... 用户名 -u 用户id.-d 家目录路径.-s 登录Shell(解释器).-G 附加组 /sbin/nologin :禁止用户登陆系统 ...
- Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)
近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ...
- NX二次开发-曲线或边分析函数
UF_EVAL_is_arc 判断是圆形曲线或边UF_EVAL_ask_arc 圆形曲线或边分析,得到曲线或边的信息 类似的函数还有以下这些: UF_EVAL_is_ellipse // 椭圆UF ...
- noip2015 总结
神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方:首先将1写在第一行的 ...
- [Azure DevOps] 如何使用任务组
1. 使用 PowerShell 脚本 在上一篇文章中我们学会了怎么使用扩展在编译前实时更改版本号.有些情况下我们希望不适用扩展,例如喜欢发明轮子,或者根本没有安装扩展的权限.这时候我们可以自己写 P ...