最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net core如何利用ConcurrentTest組件對方法進行壓力測試詳解

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

前言

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

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

引用組件

Install-Package BeetleX.ConcurrentTest -Version 0.2.8

WebAPI服務

[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);
    }
  }

以上是一個簡單的dotnet core WebApi服務,主要是提供了雇員獲取和添加功能。

測試用例

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來標記,具體測試方法通過接口定義。使用接口來描述WebApi請求是FastHttpApi,在這里就不過多說明。

使用ConcurrentTest進行壓力測試

當測試用例編寫完成后,就可以使用ConcurrentTest對測試用例進行一個多線程并發(fā)測試;只需要簡單運行以下代碼即可

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

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

測試報表

在運行過程中組件會實時顯示并發(fā)情況和區(qū)間響應數(shù)量,最終會針對每個測試用例形成一個簡要的測試結(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的功能還相對簡陋,不過應用者還是可以根據(jù)實際的需要來制定統(tǒng)計標簽,延時區(qū)間等相關(guān)統(tǒng)計;由于組件的代碼也非常少只有幾個類,你也根據(jù)根據(jù)自己的需要來擴展它或在https://github.com/IKende/ConcurrentTest提上相應issues

總結(jié)

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

相關(guān)文章

最新評論

鱼台县| 马边| 隆林| 瓮安县| 庆阳市| 平泉县| 浮梁县| 武功县| 西丰县| 任丘市| 周至县| 南川市| 建瓯市| 兴隆县| 平山县| 施秉县| 吉首市| 临汾市| 达尔| 泌阳县| 武义县| 宝应县| 平远县| 泰安市| 江华| 信阳市| 高陵县| 明光市| 突泉县| 郸城县| 腾冲县| 呼伦贝尔市| 鹿邑县| 惠水县| 玉龙| 洮南市| 荆州市| 富宁县| 尼勒克县| 大悟县| 红河县|