這篇文章主要介紹如何使用CodeBenchmark對(duì)邏輯代碼進(jìn)行并發(fā)測(cè)試,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到淶源網(wǎng)站設(shè)計(jì)與淶源網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋淶源地區(qū)。
CodeBenchmark是基于netstandard2.0開(kāi)發(fā),適用于支持這一版本的.net core和.net framework環(huán)境;運(yùn)行系統(tǒng)則看情況需要可部署到linux或windows,開(kāi)發(fā)語(yǔ)言c#.
可以通過(guò)vs或vscode構(gòu)建一個(gè)控制臺(tái)項(xiàng)目然后引用組件(引用最新版本的BeetleX.CodeBenchmark)
Install-Package BeetleX.CodeBenchmark -Version 0.6.2
引用組件后就可以編寫(xiě)具體的測(cè)試用例,測(cè)試用例編寫(xiě)必須符合組件測(cè)試要求,所以需要實(shí)現(xiàn)一個(gè)接口來(lái)編寫(xiě)測(cè)試代碼,接口描述如下:
public interface IExample:IDisposable
{
void Initialize(Benchmark benchmark);
Task Execute();
}Initialize
方法用于描述并發(fā)實(shí)例創(chuàng)建時(shí)初始化信息執(zhí)行
Execute
并發(fā)實(shí)例每次執(zhí)行的代碼邏輯
測(cè)試代碼可以針對(duì)自己的業(yè)務(wù)情況來(lái)編寫(xiě),具體的業(yè)務(wù)邏輯可以是http,數(shù)據(jù)庫(kù)訪問(wèn)等操作.
[System.ComponentModel.Category("TCP")]
public class WebsocketJson : IExample
{
public async Task Execute()
{
var request = new { url = "/json" };
var result = await jsonClient.ReceiveFrom(request);
}
private BeetleX.Http.WebSockets.JsonClient jsonClient;
public void Initialize(Benchmark benchmark)
{
jsonClient = new BeetleX.Http.WebSockets.JsonClient("ws://192.168.2.19:8080");
}
public void Dispose()
{
jsonClient.Dispose();
}
}[System.ComponentModel.Category("TCP")]
public class TcpTextLine : IExample
{
public async Task Execute()
{
var data = $"henryfan@{DateTime.Now}";
var stream = await mClient.ReceiveFrom(s => s.WriteLine(data));
stream.ReadLine();
}
private BeetleX.Clients.AsyncTcpClient mClient;
public void Initialize(Benchmark benchmark)
{
mClient = BeetleX.SocketFactory.CreateClient<BeetleX.Clients.AsyncTcpClient>("192.168.2.19", 9012);
}
public void Dispose()
{
mClient.Dispose();
}
}[System.ComponentModel.Category("TCP")]
class HttpGet : IExample
{
public void Dispose()
{
}
public async Task Execute()
{
var result = await _httpHandler.json();
}
public void Initialize(Benchmark benchmark)
{
if (_httpApi == null)
{
_httpApi = new BeetleX.Http.Clients.HttpClusterApi();
_httpApi.DefaultNode.Add("http://192.168.2.19:8080");
_httpHandler = _httpApi.Create<IHttpHandler>();
}
}
static BeetleX.Http.Clients.HttpClusterApi _httpApi;
static IHttpHandler _httpHandler;
[BeetleX.Http.Clients.FormUrlFormater]
public interface IHttpHandler
{
// http://host/json
Task<string> json();
}
}以上基礎(chǔ)的測(cè)試用例都可以從https://github.com/IKende/CodeBenchmarkDoc 獲取得到.
組件在運(yùn)行用例的時(shí)候并不需要配置,只需要構(gòu)建測(cè)試對(duì)象并把有測(cè)試用例的程序集注冊(cè)進(jìn)去即可完成.
Benchmark benchmark = new Benchmark(); benchmark.Register(typeof(Program).Assembly); benchmark.Start();
以上代碼是加載本項(xiàng)的程序集,并啟動(dòng)一個(gè)測(cè)試管理界面.默認(rèn)開(kāi)啟的服務(wù)端口是9090,可以在Start方法指定服務(wù)的端口.啟動(dòng)日志如下:

通過(guò)日志可以查看到服務(wù)啟動(dòng)情況,運(yùn)行成功后就可以通過(guò)瀏覽器訪問(wèn)并進(jìn)行測(cè)試

也可以運(yùn)行多個(gè)測(cè)試用例,并對(duì)比它們的性能.

以上是“如何使用CodeBenchmark對(duì)邏輯代碼進(jìn)行并發(fā)測(cè)試”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞名稱:如何使用CodeBenchmark對(duì)邏輯代碼進(jìn)行并發(fā)測(cè)試
文章路徑:http://chinadenli.net/article20/jpsdjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)建站、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)