这篇文章主要介绍如何使用CodeBenchmark对逻辑代码进行并发测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
CodeBenchmark
是基于netstandard2.0
开发,适用于支持这一版本的.net core
和.net framework
环境;运行系统则看情况需要可部署到linux
或windows
,开发语言c#
.
可以通过vs
或vscode
构建一个控制台项目然后引用组件(引用最新版本的BeetleX.CodeBenchmark
)
Install-Package BeetleX.CodeBenchmark -Version 0.6.2
引用组件后就可以编写具体的测试用例,测试用例编写必须符合组件测试要求,所以需要实现一个接口来编写测试代码,接口描述如下:
public interface IExample:IDisposable { void Initialize(Benchmark benchmark); Task Execute(); }
Initialize
方法用于描述并发实例创建时初始化信息执行
Execute
并发实例每次执行的代码逻辑
测试代码可以针对自己的业务情况来编写,具体的业务逻辑可以是http,数据库访问等操作.
[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(); } }
以上基础的测试用例都可以从https://github.com/IKende/CodeBenchmarkDoc 获取得到.
组件在运行用例的时候并不需要配置,只需要构建测试对象并把有测试用例的程序集注册进去即可完成.
Benchmark benchmark = new Benchmark(); benchmark.Register(typeof(Program).Assembly); benchmark.Start();
以上代码是加载本项的程序集,并启动一个测试管理界面.默认开启的服务端口是9090
,可以在Start
方法指定服务的端口.启动日志如下:
通过日志可以查看到服务启动情况,运行成功后就可以通过浏览器访问并进行测试
也可以运行多个测试用例,并对比它们的性能.
以上是“如何使用CodeBenchmark对逻辑代码进行并发测试”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。