国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

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

2024-07-10 12:48:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

工欲善其事,必先利其器!在編寫服務(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ù)的工具來(lái)測(cè)試代碼用例,于時(shí)就有了ConcurrentTest這個(gè)組件的實(shí)現(xiàn).通過(guò)ConcurrentTest組件可以運(yùn)行不同的測(cè)試用例,并可以實(shí)時(shí)查看具體的并發(fā)情況和延時(shí)分布數(shù)據(jù)。

以下介紹一下如何使用ConcurrentTest運(yùn)行測(cè)試用例并統(tǒng)計(jì)運(yùn)行結(jié)果,話不多說(shuō)了,來(lái)一起看看詳細(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);    }  }

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

使用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萬(wàn)次調(diào)用測(cè)試。

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 会理县| 呼图壁县| 永年县| 昭平县| 青川县| 班戈县| 土默特右旗| 淄博市| 饶平县| 博客| 泗洪县| 正镶白旗| 二连浩特市| 天长市| 图们市| 香格里拉县| 新乐市| 阳江市| 金沙县| 卓资县| 涡阳县| 康定县| 化德县| 于田县| 万山特区| 马山县| 武威市| 丁青县| 沽源县| 灌南县| 肇源县| 安丘市| 吉水县| 犍为县| 正宁县| 屯门区| 抚远县| 泸溪县| 墨玉县| 达孜县| 金昌市|