開源的負載測試/壓力測試工具NBomber | IT人

文章推薦指數: 80 %
投票人數:10人

負載測試和壓力測試對於確保web 應用的效能和可縮放性非常重要。

... 一些抽象,以便我們可以描述任何型別的負載,並且仍然有一個簡單、直觀的API。

Togglenavigation IT人 IT人 開源的負載測試/壓力測試工具NBomber 張善友發表於 2021-07-18 負載測試和壓力測試對於確保web應用的效能和可縮放性非常重要。

儘管它們的某些測試是相同的,但目標不同。

負載測試:測試應用是否可以在特定情況下處理指定的使用者負載,同時仍滿足響應目標。

應用在正常狀態下執行。

壓力測試:在極端條件下(通常為長時間)執行時測試應用的穩定性。

測試會對應用施加高使用者負載(峰值或逐漸增加的負載)或限制應用的計算資源。

壓力測試可確定壓力下的應用是否能夠從故障中恢復,並正常返回到預期的行為。

在壓力下,應用不會在正常狀態下執行。

NBomber是一個開源的.NET框架,開源協議是Apache2.0,NBomber用於對多種服務進行負載測試,包括Web、訊息佇列、資料庫等。

 今年5月份釋出了NBomber2.0版本。

NBomber類似於JMeter,但是和JMeter不一樣的地方是,NBomber是通過F#/C#/JSON程式碼來表達測試場景。

NBomber背後的主要原因是為編寫負載測試提供了一個輕量級框架,您可以使用它來測試任何系統並模擬任何生產工作負載。

我們只想提供一些抽象,以便我們可以描述任何型別的負載,並且仍然有一個簡單、直觀的API。

另一個目標是提供構建塊,通過應用任何複雜的負載分佈來驗證您的POC(概念驗證)專案。

使用NBomber,您可以測試任何PULL或PUSH系統(HTTP、WebSockets、GraphQl、gRPC、SQLDatabse、MongoDb、Redis等)。

使用NBomber,您可以輕鬆地將一些整合測試轉換為負載測試。

NBomber作為一個現代框架提供:零依賴協議(HTTP/WebSockets/AMQP/SQL)對語義模型的零依賴(Pull/Push)非常靈活的配置和非常簡單的API(F#/C#/JSON)叢集支援實時報告CI/CD整合資料饋送支援NBomber的使用比較簡單,跟著入門文件走一遍就學會了:https://nbomber.com/docs/overview1、建立一個控制檯程式dotnetnewconsole-nNBomberTest-lang"C#" cdNBomberTest2、新增NBomber包dotnetaddpackageNBomber3、建立helloworld負載測試讓我們先從一個空的helloworld開始,以便更熟悉NBomber。

在這個例子中,我們將定義一個簡單的步驟和場景,它什麼都不做。

usingSystem; usingSystem.Threading.Tasks; usingNBomber.Contracts; usingNBomber.CSharp; namespaceNBomberTest {    classProgram    {        staticvoidMain(string[]args)        {              //first,youneedtocreateastep            varstep=Step.Create("step",asynccontext=>            {                //youcandefineandexecuteanylogichere,                //forexample:sendhttprequest,SQLqueryetc                //NBomberwillmeasurehowmuchtimeittakestoexecuteyourlogic                awaitTask.Delay(TimeSpan.FromSeconds(1));                returnResponse.Ok();            });                        //second,weaddoursteptothescenario            varscenario=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頁面的報告比較直觀: 相關文章 APP安卓滲透測試四大步驟 2021-07-15 滲透測試公司談網站安全評估方法 2021-07-15 『心善淵』Selenium3.0基礎—28、unittest中測試套件的使用 2021-07-15 程式碼重構與單元測試——“提取方法”重構(三) 2021-07-15 測試基礎(四)Jmeter基礎使用 2021-07-15 《手把手教你》系列技巧篇(八)-java+selenium自動化測試-元素定位大法之Byid(詳細教程) 2021-07-15 Java自動化測試 laravelseed生成測試資料 2021-07-15 Laravel 【TEST】Oracle19c使用benchmarksql進行效能測試 2021-07-16 OracleSQL 『心善淵』Selenium3.0基礎—30、UI自動化測試之POM設計模式 2021-07-16 設計模式自動化測試 幹掉Postman?測試介面直接生成API文件,這個工具賊好用 2021-07-16 FlutterGzip編碼與解碼DartGzip工具類操作 2021-07-15 Flutter 【重學Java】多執行緒進階(執行緒池、原子性、併發工具類) 2021-07-16 Java 一個讓我欲罷不能的開源文件管理工具 2021-07-17 JUnit5依賴注入與測試介面 2021-07-18 嵌入式Redis伺服器在SpringBoot測試中的使用 2021-07-18 Redis嵌入式Spring 脫離OBDeploy工具,手工部署OceanBase方法 2021-07-19 最新文章 阿里大規模業務混部下的全鏈路資源隔離技術演進 【伺服器資料恢復案例解讀】伺服器突然崩潰,重啟後無法進入系統故障的資料恢復 電商行業資料包表調研的三個維度 產品經理不可能不知道的優秀團隊協作工具—飛項 NFT商城系統介紹|NFT模式系統原始碼搭建 一篇簡文讓你明白CPU到底是什麼?為什麼能夠實現計算? 華為聯合團隊斬獲AI頂會NeurIPS2021ML4CO求解器超參優化賽道冠軍 什麼是微服務架構?什麼是服務註冊與發現 資料分析的4個目的3個意義,新手小白一定要看! 非計算機專業人員如何學習好Python技術? 「Spark從精通到重新入門(一)」Spark中不可不知的動態優化 WebGoat8.2.2-A8不安全的反序列化



請為這篇文章評分?