说到WebApi管理和测试工具其实已经非常多的了,Postman、Swagger等在管理和维护上都非常出色;在性能测试方面也有不少的工具如:wrk,bombardier,http_load和ab等等。不过这些工具都具有单一性,管理和维护好的在性能测试上比较低效,对于性能测试好的在管理和维护上不理想!以下主要介绍一款基于dotnet core开发的WebApiBenchmarks工具,这个工具可以对webapi进行管理和维护并提供高效的性能测试能力,接下来来先预览一下这个小工具再进行详细介绍。

功能

  • 支持简单的服务管理,可以随时对不同服务的API进行单元和压力测试
  • 支持分类的方式管理测试用例,用例支持定义GET,POST,DELETE和PUT等操作的定义
  • 提供高效的性能测试支持,在4核的PC上可以达到20W rps的测试效能;
  • 支持多API同时压测,并显示相关性能指标数据进行参考和对比

部署

工具可以运行在安装有.net core 2.1或更高版本的Linux和Windows下,工具以http服务的方式启动,通过浏览器访问进行相关操作。 下载工具:https://github.com/IKende/WebApiBenchmark

运行

  • linux
dotnet BeetleX.WebApiBenchmarks.dll

or

./webapibenchmark.sh

  • windows
dotnet BeetleX.WebApiBenchmarks.dll

or

webapibenchmark.bat

端口冲突

工具默认使用9090端口,如果端口被占则无法启用服务,这个时候需要修改HttpConfig.json文件中的端口配置

    "Host": "",
"Port": 9090,
"SSL": false,

打开工具

工具运行后可以浏览器访问相关地址打开工具,本机访问http://localhost:9090/其他电脑访问http://ipaddress:9090/

添加服务地址

工具可以维护多个服务地址,所有的测试都必须选择对应的地址才能运行测试。

地址必须是一个可用的http服务Url

添加测试用例

工具支持GET,POST,DELETE和PUT请求定义,可以根据实际情况定义QueryString和Header值,并针对POST和PUT设置相应的Body内容。具体操作界面如下:

在编辑界面下面有个测试按钮,可以即刻测试API的调用情况;选择相应的服务地址点击测试即可在下方看到完整的返回结果:

批量单元测试

工具支持批量执行测试用例,并在测试用例上显示具体的执行结果;只要选择需要测试的用例点击单元测试即可:

性能测试

性能测试是组件提供的最重要功能,为了确保性能测试的效率;组件重写了一个轻量化的HttpClient,通过这个HttpClient即使在低配置的电脑上也可以进行高效率的压力测试。测试前需要选择相应的服务地址和单元测试用例

测试参数设置

工具提供两种测试方式,分别是基于时间和总请求数据,选择对应的测试方式设置相应的测试数值即可;用户数是指同时请求的数量,工具限制设置最大2000,设置完成后点击开始按钮即可进行测试

测试结果

工具会实时反映测试的情况,主要包括HTTP响应状态和响应延时分布情况,如果同时压测多个API,则明细里会实时显示每个API的响应状态和响应延时情况。具体如下:

 

WebApi管理和性能测试工具WebApiBenchmarks的更多相关文章

  1. Webapi管理和性能测试工具WebBenchmark

    WebBenchmark是一款基于开源通讯组件Beetlex扩展的Webapi管理和性能测试工具,在传统工具中一般管理工具缺乏性能压测能力或有性能测试的缺少管理功能:WebBenchmark的设计目标 ...

  2. TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具

    在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多. 除了netperf以外.       还有很多其它的网络性能测试工具.       如db, ...

  3. 性能测试工具 转自https://yq.aliyun.com/articles/35149?spm=5176.100239.blogcont35147.8.rsow6k

    摘要: 继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具.在此之前,我已经对性能测试工具的原理与架构做了分析. http://www.cnblogs.com/fnng ...

  4. Web Service 性能测试工具比较

    背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒).以微信服务器为例,每个用户用独立的登录token,做各种操作, ...

  5. Web网站的性能测试工具

    随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器 ...

  6. YCSB性能测试工具使用

    在网上查In-Memory NoSQL性能测试的资料时,偶然间发现了这个性能测试工具YCSB,全称为"Yahoo! Cloud Serving Benchmark".它内置了对常见 ...

  7. 性能测试工具Locust的使用

    一.写在前面 官网:https://www.locust.io/ 官方使用文档:https://docs.locust.io/en/latest/ 大并发量测试时,建议在linux系统下进行. 二.L ...

  8. 开源性能测试工具Locust使用篇(三)

    脚本增强 面对较复杂的测试场景,我们可能还是会感觉无从下手:例如,很多时候脚本需要做关联或参数化处理,Locust中就不知道怎么实现了.可能也是这方面的原因,感觉难以将Locust应用到实际的性能测试 ...

  9. 性能测试工具 Web Service 性能测试工具比较

    [转自]https://testerhome.com/topics/3003 背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力 ...

随机推荐

  1. Lenghth of Last Word

    description: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', ...

  2. Fibonacci数列的解法

    Fibonacci数列的解法: 1.递归算法 递归的概念,我说不清楚,语文不好.但是核心思想,我认为就是入栈出栈.比方说,你想要求得某个结果,如果一步求解不出来,那么先把最后一步的计算步骤进栈,先不考 ...

  3. flask模板

    做为python web开发领域的一员,flask跟Django在很多地方用法以都是相似的,比如flask的模板 模板就是服务器端的页面,在模板中可以使用服务端的语法进行输出控制 1.模板的工作原理 ...

  4. PAT1037:Magic Coupon

    1037. Magic Coupon (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The magi ...

  5. SSM-Spring-06:Spring的自动注入autowire的byName和byType

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- di的注入上次讲了一些,这次主要阐述域属性的自动注入 先讲byType方式 看名字就知道是根据类型进行自动注入 ...

  6. HTML5 & MUI 界面样式

    垂直居中+自动换行 样式效果如下所示,当文字没有超出一行时,显示如“备注信息”,当文字超出一行时,显示如“维修地点” HTML代码如下: <div class="mui-input-r ...

  7. JDBC连接MySQL数据库基础

    主要内容 MySQL的基本操作和基本SQL语法 使用JDBC进行MySQL数据库的开发 使用DriverManager.Connection.PreparedStatement.ResultSet对数 ...

  8. eclipse下搭建hibernate5.0环境

    hibernate引入的jar包:hibernate-release-5.0.12.Final.zip 数据库驱动:mysql-connector-java-5.1.46 二.安装hibernate插 ...

  9. 一个简单的例子实现自己的AOP

    AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,与OOP(Object Oriented Programming)面向对象编程对等,都是一种编程思想. 从OO ...

  10. ratelimit.go

    // The ratelimit package provides an efficient token bucket implementation , false     }     tb.avai ...