说到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. 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。

    快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...

  2. Python进阶开发之元类编程

    系列文章 √第一章 元类编程,已完成 ; 本文目录 类是如何产生的如何使用type创建类理解什么是元类使用元类的意义元类实战:ORM . 类是如何产生的 类是如何产生?这个问题肯定很傻.实则不然,很多 ...

  3. Robot framework(RF) 用户关键字

    3.6  用户关键字 在Robot Framework 中关键字的创建分两种:系统关键字和用户关键字. 系统关键字是需要通过脚本开发相应的类和方法,从而实现某一逻辑功能. 用户关键字是根据业务的需求利 ...

  4. arcEngine开发之加载栅格数据

    加载数据思路 在Engine中加载各种各样的数据都是通过这样的格式 IWorkspaceFactory pWorkspace = new IWorkspaceFactory(); IWorkspace ...

  5. CentOS在线安装RabbitMQ3.7

    一.通过yum命令在线安装RabbitMQ yum在线安装,简单.快捷.自动安装相关依赖包. 1.安装Erlang环境(RabbitMQ由Erlang语言开发) 1.1)下载rpm安装包 官方地址:h ...

  6. css基础--深入理解opacity和rgba的区别

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 首先这两个都与透明度有关,那么他们之间有什么具体的区别呢?在实际工作中我们需要注意什么呢?请您接着往下看 语法 1. rg ...

  7. 并发库应用之十一 & 阻塞队列的应用

    队列包含固定长度的队列和不固定长度的队列,队列的规则就是:先进先出.固定长度的队列往里放数据,如果放满了还要放,阻塞式队列就会等待,直到有数据取出,空出位置后才继续放:非阻塞式队列不能等待就只能报错了 ...

  8. Ubuntu物理机中解决VirtualBox虚拟机无法连接USB设备的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=611 问题描述: 在安装完VirtualBox的USB控制器扩展(关于在VirtualBox中安装USB控制器扩展的 ...

  9. 常见性能优化策略的总结 good

    阅读目录 代码 数据库 缓存 异步 NoSQL JVM调优 多线程与分布式 度量系统(监控.报警.服务依赖管理) 案例一:商家与控制区关系的刷新job 案例二:POI缓存设计与实现 案例三:业务运营后 ...

  10. Python xml处理模块

    ---恢复内容开始--- xml 通过< >节点来区别数据结构 ---恢复内容结束--- xml 通过< >节点来区别数据结构 <xml version='1.0'> ...