bench-rest - bench-rest - benchmark REST (HTTP/HTTPS) API's

  •        10

bench-rest - benchmark REST (HTTP/HTTPS) API's. Node.js client module for easy load testing / benchmarking REST API' using a simple structure/DSL can create REST flows with setup and teardown and returns (measured) metrics.

https://github.com/jeffbski/bench-rest

Tags
Implementation
License
Platform

   




Related Projects

basho_bench - A load-generation and testing tool for basically whatever you can write a returning Erlang function for


Basho Bench is a benchmarking tool created to conduct accurate and repeatable performance tests and stress tests, and produce performance graphs. Originally developed to benchmark Riak, it exposes a pluggable driver interface and has been extended to serve as a benchmarking tool across a variety of projects.

Grinder - Java Load Testing Framework


The Grinder is a Java load testing framework that makes it easy to run a distributed test using many load injector machines. Load test anything that has a Java API. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols.

Pylot - Performance & Scalability Testing of Web Services


Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI or shell/console.

elastic4s - Elasticsearch Scala Client - Non Blocking, Type Safe, HTTP, TCP


Elastic4s is a concise, idiomatic, reactive, type safe Scala client for Elasticsearch. The client can be used over both HTTP and TCP by choosing either of the elastic4s-http or elastic4s-tcp submodules. The official Elasticsearch Java client can of course be used in Scala, but due to Java's syntax it is more verbose and it naturally doesn't support classes in the core Scala core library nor Scala idioms.Elastic4s's DSL allows you to construct your requests programatically, with syntactic and semantic errors manifested at compile time, and uses standard Scala futures to enable you to easily integrate into an asynchronous workflow. The aim of the DSL is that requests are written in a builder-like way, while staying broadly similar to the Java API or Rest API. Each request is an immutable object, so you can create requests and safely reuse them, or further copy them for derived requests. Because each request is strongly typed your IDE or editor can use the type information to show you what operations are available for any request type.

bench - Command-line benchmark tool


This project provides the bench command-line tool, which is a more powerful alternative to the time command. Use bench to benchmark a command using Haskell's criterion library. stack install will install bench to ~/.local/bin or something similar. Make sure that the installation directory is on your executable search path before running bench. stack will remind you to do this if you forget.


flashback - mock the internet


Flashback is designed to mock HTTP and HTTPS resources, like web services and REST APIs, for testing purposes. It records HTTP/HTTPS requests and plays back a previously recorded HTTP transaction—which we call a "scene"—so that no external connection to the internet is required in order to complete testing.Note: The flashback and flashback scene are used for testing purpose only. Each scene contains a list of Http request and response. Those http request and response might contain some sensitive data such as api key, secret, token etc. You'd better either blacklist them using customized match rule or mask them.

docker-bench-security - The Docker Bench for Security is a script that checks for dozens of common best-practices around deploying Docker containers in production


The Docker Bench for Security is a script that checks for dozens of common best-practices around deploying Docker containers in production. The tests are all automated, and are inspired by the CIS Docker Community Edition Benchmark v1.1.0. We are releasing this as a follow-up to our Understanding Docker Security and Best Practices blog post. We are making this available as an open-source utility so the Docker community can have an easy way to self-assess their hosts and docker containers against this benchmark.

go-http-routing-benchmark - Go HTTP request router and web framework benchmark


This benchmark suite aims to compare the performance of HTTP request routers for Go by implementing the routing structure of some real world APIs. Some of the APIs are slightly adapted, since they can not be implemented 1:1 in some of the routers.Of course the tested routers can be used for any kind of HTTP request → handler function routing, not only (REST) APIs.

thor - The WebSocket god of thunder


Thor is WebSocket benchmarking/load generator. There are a lot of benchmarking tools for HTTP servers. You've got ab, siege, wrk and more. But all these tools only work with plain ol HTTP and have no support for WebSockets - even if they did they wouldn't be suitable, as they would be testing short running HTTP requests instead of long running HTTP requests with a lot of messaging traffic. Thor fixes all of this. Thor requires Node.js to be installed on your system. If you don't have Node.js installed you can download it from http://nodejs.org or build it from the github source repository: http://github.com/joyent/node.

php-restclient - A generic REST API client for PHP


headers - An associative array of HTTP headers and values to be included in every request. parameters - An associative array of URL or body parameters to be included in every request. curl_options - cURL options to apply to every request; anything defined here: https://secure.php.net/manual/en/function.curl-setopt.php. These will override any automatically generated values. build_indexed_queries (bool) - http_build_query automatically adds an array index to repeated parameters which is not desirable on most systems. Use this option to enable the default behavior. Defaults to FALSE. user_agent - User agent string to use in requests. base_url - URL to use for the base of each request. format - Format string is appended to resource on request (extension), and used to determine which decoder to use on response; a request URL like "api.twitter.com/1.1/statuses/user_timeline.json" would be expected to return well-formed JSON. format_regex - Pattern to extract format from response Content-Type header, used to determine which decoder to use on response. decoders - Associative array of format decoders. See "Direct Iteration and Response Decoding". username - Username to use for HTTP basic authentication. Requires password. password - Password to use for HTTP basic authentication. Requires username. url (string) - URL of the resource you are requesting. Will be prepended with the value of the base_url option, if it has been configured. Will be appended with the value of the format option, if it has been configured.

vegeta - HTTP load testing tool and library. It's over 9000!


Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command line utility and a library.Get them here.

Simple-Web-Server - A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost


A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Asio (both Boost.Asio and standalone Asio can be used). Created to be an easy way to make REST resources available from C++ applications. See https://github.com/eidheim/Simple-WebSocket-Server for an easy way to make WebSocket/WebSocket Secure endpoints in C++. Also, feel free to check out the new C++ IDE supporting C++11/14/17: https://github.com/cppit/jucipp.

bombardier - Fast cross-platform HTTP benchmarking tool written in Go


bombardier is a HTTP(S) benchmarking tool. It is written in Go programming language and uses excellent fasthttp instead of Go's default http library, because of its lightning fast performance.With bombardier v1.1 and higher you can now use net/http client if you need to test HTTP/2.x services or want to use a more RFC-compliant HTTP client.

chi - Lightweight, idiomatic and composable router for building Go HTTP services


chi is a lightweight, idiomatic and composable router for building Go 1.7+ HTTP services. It's especially good at helping you write large REST API services that are kept maintainable as your project grows and changes. chi is built on the new context package introduced in Go 1.7 to handle signaling, cancelation and request-scoped values across a handler chain.

LoadUI - Load Testing Tool


loadUI deliver a visual, drag-and-drop interface which allows you to create, configure and redistribute your Load Tests interactively and in real-time. You can distribute your Load Tests across any number of loadUI Agents on local or remote machines, allowing you to simulate high volume and real-world load with incredible efficiency. It supprots wide range of protocols and technologies from HTTP(S), HTML, SOAP/WSDL and REST to AMF, JDBC, JMS and POX.

C++ REST SDK (codename "Casablanca")


A cross-platform, modern, asynchronous C++ SDK that enables developers to connect with REST services. Features include: HTTP Client, JSON, async streams, URI

Kong - The Microservice API Gateway


Kong is a cloud-native, fast, scalable, and distributed Microservice Abstraction Layer (also known as an API Gateway, API Middleware or in some cases Service Mesh). Backed by the battle-tested NGINX with a focus on high performance, Kong was made available as an open-source platform in 2015. Under active development, Kong is used in production at thousands of organizations from startups, Global 5000 and Government organizations.

restclient-cpp - C++ client for making HTTP/REST requests


This is a simple REST client for C++. It wraps libcurl for HTTP requests. restclient-cpp provides two ways of interacting with REST endpoints. There is a simple one, which doesn't need you to configure an object to interact with an API. However the simple way doesn't provide a lot of configuration options either. So if you need more than just a simple HTTP call, you will probably want to check out the advanced usage.

resty - Simple HTTP and REST client for Go inspired by Ruby rest-client


Simple HTTP and REST client for Go inspired by Ruby rest-client. Features section describes in detail about resty capabilities.v0.13 released and tagged on Jun 22, 2017.