欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.net core如何利用ConcurrentTest組件對(duì)方法進(jìn)行壓力測(cè)試詳解

 更新時(shí)間:2018年11月06日 10:01:38   作者:smark  
這篇文章主要給大家介紹了關(guān)于.net core如何利用ConcurrentTest組件對(duì)方法進(jìn)行壓力測(cè)試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧

前言

工欲善其事,必先利其器!在編寫服務(wù)中首先要有一個(gè)好的測(cè)試工具,在dontecore下性能測(cè)試有BenchmarkDotNet,只需要簡(jiǎn)單的配置一下就可以對(duì)方法的性能進(jìn)行詳細(xì)的測(cè)試。但有時(shí)候需要對(duì)不同并發(fā)下看其處理效率和延時(shí)統(tǒng)計(jì)查看,如HTTP服務(wù)對(duì)應(yīng)著大量的測(cè)試工具如ab,bombardier等等。由于找不到類似于測(cè)試HTTP服務(wù)的工具來測(cè)試代碼用例,于時(shí)就有了ConcurrentTest這個(gè)組件的實(shí)現(xiàn).通過ConcurrentTest組件可以運(yùn)行不同的測(cè)試用例,并可以實(shí)時(shí)查看具體的并發(fā)情況和延時(shí)分布數(shù)據(jù)。

以下介紹一下如何使用ConcurrentTest運(yùn)行測(cè)試用例并統(tǒng)計(jì)運(yùn)行結(jié)果,話不多說了,來一起看看詳細(xì)的介紹吧

引用組件

Install-Package BeetleX.ConcurrentTest -Version 0.2.8

WebAPI服務(wù)

[Route("api/[controller]")]
  [ApiController]
  public class EmployeeController : ControllerBase
  {
    [HttpGet("{count}")]
    public JsonResult Get(int count)
    {
      return new JsonResult(Employee.GetEmployees(count));
    }
    [HttpPost]
    public JsonResult Post([FromBody]Employee value)
    {
      return new JsonResult(value);
    }
  }

以上是一個(gè)簡(jiǎn)單的dotnet core WebApi服務(wù),主要是提供了雇員獲取和添加功能。

測(cè)試用例

public class FastHttpClientTest
  {
    public FastHttpClientTest()
    {
      httpApiClient = new HttpApiClient(Host);
      clientApi = httpApiClient.CreateWebapi<IHttpClientApi>();
    }
    private string Host = "http://localhost:8007";
    private BeetleX.FastHttpApi.HttpApiClient httpApiClient;
    private IHttpClientApi clientApi;
    [CTestCase]
    public void AddEmployee()
    {
      clientApi.AddEmployee(Employee.GetEmployee());
    }
    [CTestCase]
    public void ListEmployees()
    {
      clientApi.ListEmployees(2);
    }
    [JsonFormater]
    public interface IHttpClientApi
    {
      [Get(Route = "api/employee/{count}")]
      List<Employee> ListEmployees(int count);
      [Post(Route = "api/employee")]
      Employee AddEmployee(Employee item);
    }
  }

組件使用起來和BenchmarkDotNet差不多,通過CTestCase來標(biāo)記,具體測(cè)試方法通過接口定義。使用接口來描述WebApi請(qǐng)求是FastHttpApi,在這里就不過多說明。

使用ConcurrentTest進(jìn)行壓力測(cè)試

當(dāng)測(cè)試用例編寫完成后,就可以使用ConcurrentTest對(duì)測(cè)試用例進(jìn)行一個(gè)多線程并發(fā)測(cè)試;只需要簡(jiǎn)單運(yùn)行以下代碼即可

CTester.RunTest<FastHttpClientTest>(10, 500000);

以上代碼是對(duì)FastHttpClientTest的所有測(cè)試方法進(jìn)行一個(gè)測(cè)試,測(cè)試數(shù)據(jù)是使用10個(gè)線程,進(jìn)行500000萬次調(diào)用測(cè)試。

測(cè)試報(bào)表

在運(yùn)行過程中組件會(huì)實(shí)時(shí)顯示并發(fā)情況和區(qū)間響應(yīng)數(shù)量,最終會(huì)針對(duì)每個(gè)測(cè)試用例形成一個(gè)簡(jiǎn)要的測(cè)試結(jié)果;具體結(jié)果如下:

***********************************************************************
* https://github.com/IKende/ConcurrentTest.git
* Copyright ? ikende.com 2018 email:henryfan@msn.com
* ServerGC:True
***********************************************************************
* AddEmployee test prepping completed
-----------------------------------------------------------------------
* [500000/500000]|threads:[10]
* Success:[ 0/s]|total:[ 500000][min:23448/s max:24561/s]
* Error:[ 0/s]|total:[ 0][min:0/s max:0/s]
-----------------------------------------------------------------------
* 0ms-0.1ms:[ ] 0.1ms-0.5ms:[ 435,604]
* 0.5ms-1ms:[ 59,863] 1ms-5ms:[ 4,356]
* 5ms-10ms:[ 142] 10ms-50ms:[ 35]
* 50ms-100ms:[ ] 100ms-1000ms:[ ]
* 1000ms-5000ms:[ ] 5000ms-10000ms:[ ]
***********************************************************************

***********************************************************************
* ListEmployees test prepping completed
-----------------------------------------------------------------------
* [500000/500000]|threads:[10]
* Success:[ 0/s]|total:[ 500000][min:28105/s max:28829/s]
* Error:[ 0/s]|total:[ 0][min:0/s max:0/s]
-----------------------------------------------------------------------
* 0ms-0.1ms:[ ] 0.1ms-0.5ms:[ 476,342]
* 0.5ms-1ms:[ 20,641] 1ms-5ms:[ 2,922]
* 5ms-10ms:[ 80] 10ms-50ms:[ 15]
* 50ms-100ms:[ ] 100ms-1000ms:[ ]
* 1000ms-5000ms:[ ] 5000ms-10000ms:[ ]
***********************************************************************

組件還具備什么功能

現(xiàn)有的ConcurrentTest的功能還相對(duì)簡(jiǎn)陋,不過應(yīng)用者還是可以根據(jù)實(shí)際的需要來制定統(tǒng)計(jì)標(biāo)簽,延時(shí)區(qū)間等相關(guān)統(tǒng)計(jì);由于組件的代碼也非常少只有幾個(gè)類,你也根據(jù)根據(jù)自己的需要來擴(kuò)展它或在https://github.com/IKende/ConcurrentTest提上相應(yīng)issues

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 關(guān)于vs2005、vs2008和vs2010項(xiàng)目互轉(zhuǎn)的總結(jié)

    關(guān)于vs2005、vs2008和vs2010項(xiàng)目互轉(zhuǎn)的總結(jié)

    有做.net的程序員和朋友曾經(jīng)問過我,關(guān)于vs2005和vs2008、vs2008和vs2010、vs2005和vs2010項(xiàng)目互轉(zhuǎn)的問題,特整理下分享給大家
    2012-04-04
  • ASP.NET服務(wù)器控件的生命周期分析

    ASP.NET服務(wù)器控件的生命周期分析

    這篇文章主要介紹了ASP.NET服務(wù)器控件的生命周期分析,較為詳盡的講述了asp.net服務(wù)器控件的運(yùn)行原理與過程,有助于深入了解asp.net程序的運(yùn)行原理,需要的朋友可以參考下
    2014-11-11
  • 使用本機(jī)IIS?Express開發(fā)Asp.Net?Core應(yīng)用圖文教程

    使用本機(jī)IIS?Express開發(fā)Asp.Net?Core應(yīng)用圖文教程

    IIS Express是一個(gè)Mini版的IIS,能夠支持所有的Web開發(fā)任務(wù),本篇經(jīng)驗(yàn)將和大家介紹使用自定義主機(jī)名來訪問運(yùn)行在IIS?Express上的站點(diǎn)程序的方法,希望對(duì)大家的工作和學(xué)習(xí)有所幫助
    2023-06-06
  • 理解ASP.NET Core 中間件(Middleware)

    理解ASP.NET Core 中間件(Middleware)

    這篇文章主要介紹了ASP.NET Core 中間件(Middleware),中間件是一種裝配到應(yīng)用管道以處理請(qǐng)求和響應(yīng)的軟件。文中講解相關(guān)知識(shí)非常詳細(xì),感興趣的朋友可以一起來看一看
    2021-09-09
  • ASP.NET Core實(shí)現(xiàn)中間件的幾種方式

    ASP.NET Core實(shí)現(xiàn)中間件的幾種方式

    這篇文章介紹了ASP.NET Core實(shí)現(xiàn)中間件的幾種方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳解ASP.NET Core 中的框架級(jí)依賴注入

    詳解ASP.NET Core 中的框架級(jí)依賴注入

    本篇文章主要介紹了詳解ASP.NET Core 中的框架級(jí)依賴注入,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 分析10個(gè)ASP.NET控件最有用的屬性詳解

    分析10個(gè)ASP.NET控件最有用的屬性詳解

    對(duì)于微軟平臺(tái)開發(fā)人員而言,每天都要和各種ASP.NET控件打交道,本文不打算介紹各種控件的具體使用方法,相反,我只想和大家分享一下ASP.NET控件最有用的10個(gè)屬性,相信讀完本文可提升你的開發(fā)技能。
    2011-08-08
  • .NET操作Excel實(shí)例分享

    .NET操作Excel實(shí)例分享

    這篇文章主要介紹了.NET操作Excel實(shí)例,有需要的朋友可以參考一下
    2014-01-01
  • ASP.NET CORE學(xué)習(xí)教程之自定義異常處理詳解

    ASP.NET CORE學(xué)習(xí)教程之自定義異常處理詳解

    這篇文章主要給大家介紹了關(guān)于ASP.NET CORE學(xué)習(xí)教程之自定義異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Asp.Mvc 2.0用戶的編輯與刪除實(shí)例講解(5)

    Asp.Mvc 2.0用戶的編輯與刪除實(shí)例講解(5)

    這篇文章主要介紹了Asp.Mvc 2.0用戶的編輯與刪除功能,需要的朋友可以參考下
    2015-08-08

最新評(píng)論