🚀 Send a load of requests with nodejs using cluster and with/without Tor for anonymisation 🙈

Overview

Accumulator

🚀 Send a load of requests with nodejs using cluster and with/without Tor for anonymisation 🙈

Buy Me A Coffee


issues licence PRs welcome!

⚠️ Disclamer, This repo has been created for an educative purpose. I am not related to any person who might use this project for the wrong reason. ⚠️

Getting started

Check your node version, it must be 17.6.0, otherwise you can use nvm as follow

nvm install 17
nvm use 17

Optional anonymisation

The following steps are optional and only needed if you want to use the anonymisation

First, you need to install Tor on your machine since the requests will transit through it in order to get anonymous requests.

# On Mac OS 
brew install tor

Or follow the link here or here

you can then find the configuration file located here (on mac os) /usr/local/etc/tor/torrc.sample. You can remove the .sample to make it effective.

Finally, you can start your tor service

# On Mac OS
tor & # & make tor running as a background process

alternativaly, you can also install the Tor browser

Configuration

Start by populating targets.json with the websites you want to test. Here is how to fill the json file

{
    "data": [
      "http://127.0.0.1:80"
    ]
}

Update the config.json file to customise the test. Here is the example config.json.

{
	"requestPerBatch": 20,
	"logEveryMs": 150,
	"delayBetweenBatch": 500,
	"cpuUsageRatio": 1,
	"socksProxies": ["socks5h://127.0.0.1:9050"]
}

The socksProxies configuration is optional and correspond to the anonymisation using TOR as explained in the Getting started section. It correspond to a set of Tor sockets that will be used as proxy for the requests.

Running

Tests

Run the following commands to be able to launch your servers and the load test on it.

npm run start-server:test
npm run start

this command npm run start-server:test will start a local sever on which you can try to send some requests. Find your public IP and open a port on your router to redirect the request to your local server. Then, add your public IP and port prefixed with the protocol in target.json file.

Production

To really start the load test, you only need to fill your target.json file with the websites you want to test and eventually update your config.json file. then run the command npm run start only.

Contribute 🗳️

Contributions are welcome! You can look at the contribution guidelines

You might also like...

A Kubernetes monitoring tool to visualize large-scale activity and real-time comprehensive metrics within your cluster.

A Kubernetes monitoring tool to visualize large-scale activity and real-time comprehensive metrics within your cluster.

Armada A light-weight Kubernetes health monitoring tool. Summary Armada is an open-source tool for monitoring the health of your Kubernetes cluster. I

Nov 2, 2022

A map for 1337 Khouribga's new labs clusters. This tool will help 1337 students find available posts, and search for other students in the cluster by name or login.

A map for 1337 Khouribga's new labs clusters. This tool will help 1337 students find available posts, and search for other students in the cluster by name or login.

1337KH Labs Clusters Map Hellow. This tool is made by 1337 Khouribga students for 1337 Khouribga students to help make their lives at the school easie

Aug 8, 2022

A light-weight, simple, and straightforward learning tool for your Kubernetes cluster

A light-weight, simple, and straightforward learning tool for your Kubernetes cluster

Introducing Neptune Light-weight, simple, and straightforward learning tool for your Kubernetes cluster Neptune is an approachable learning tool, ligh

Jan 4, 2023

An open-source visualization tool for monitoring Kafka cluster metrics

An open-source visualization tool for monitoring Kafka cluster metrics

GitHub Tutorial Hyperion An open-source Kafka monitoring tool built for developers hyperionapp.dev Table of Contents About the Project Built With Gett

Nov 10, 2022

A front end GUI for interacting with the Stable Horde / Stable Diffusion distributed cluster

A front end GUI for interacting with the Stable Horde / Stable Diffusion distributed cluster

ArtBot for Stable Diffusion See it in action: https://tinybots.net/artbot ArtBot is a front-end GUI for generating images and photos with Stable Diffu

Jan 2, 2023

On this page, you can save and load all the awesome books you have and save the name and the author into the local storage. this project uses Javascript to interact with the pages

Awesome Books: refactor to use JavaScript classes In this project, We add the links to the applications into the final project Getting Started if you

Nov 29, 2022

This branch is created to make receive and send data to api using async and await methods

This branch is created to make receive and send data to api using async and await methods

Microverse-Leader-Board Project from module 2 week 4 This branch is created to make receive and send data to api using async and await methods Screens

Apr 22, 2022

Zenload - "Load couple loaders and apply transform one-by-one

Zenload Load couple loaders and apply transforms one-by-one. Install npm i zenload -g How to use? With env vairable ZENLOAD: NODE_OPTIONS='"--loader

Jan 25, 2022

This simple extension can automatically load NBN availability information for properties on realestate.com.au & domain.com.au including technology type, maximum line speed, and co-existance status if available.

This simple extension can automatically load NBN availability information for properties on realestate.com.au & domain.com.au including technology type, maximum line speed, and co-existance status if available.

NBN Availability Check Chrome Extension This simple extension can automatically load NBN availability information for properties on realestate.com.au

Aug 17, 2022
Owner
Adrien de Peretti
I am just a programmer like any other
Adrien de Peretti
A lightweight (the actual ship is heavy though), performat & powerful sharder for Discord.JS. Indomitable uses cluster module to evenly spread her weight (load) across your cores

Indomitable A lightweight (the actual ship is heavy though), performat & powerful sharder for Discord.JS. Indomitable uses cluster module to evenly sp

Saya 17 Nov 29, 2022
CLI utility that broadcasts BTC, ETH, SOL, ZEC & XMR transactions through TOR using public block explorers

tx-tor-broadcaster CLI utility that broadcasts BTC, ETH, SOL, ZEC & XMR transactions through TOR using public block explorers. Provides a great degree

Paul Miller 58 Dec 25, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Create and Host a dark Web Site (Tor Hidden Service)

Tutorial: Hosting a site on Dark Web (Tor Hidden Service) Introduction Before starting, lets clear some questions that might come up in your mind: Wha

Arnav Kumar 16 Oct 18, 2022
Send encrypted messages and decrypt them without sharing keys. Built using the Handshake blockchain.

zmsg Encrypt and decrypt messages using AEAD with an ephemeral key Learn more by joining the Handshake Discord Community I noticed that there wasn't a

Publius Federalist 31 Jul 27, 2022
Awesome books app is a basic website that allows users to add/remove books from a list. It is a single page app (SPA) which allow switching to different pages of the app without page load. Built with JavaScript.

Awesome Books ES6 In this project, I build a basic website that allows users to add/remove books from a list. using ES6 syntax and make it more organi

Abdulhamid 11 Jul 1, 2022
A template repo that contains a NodeJS app that will consume messages from a RabbitMQ queue and immediately send them to an Azure EventHub.

README.md Summary This repo (RabbitMQ to EventHub Shovel) is a template that contains a NodeJS app that will consume messages from a RabbitMQ queue an

Valtech San Diego 6 Jul 2, 2022
A peroidic-table api built with Nodejs & Mongodb to help make frontend requests dealing with chemistry...

A peroidic-table api for frontend apps Usage Example (GET all elements) // GET /api/elements const ajio = require("ajio") ajio.baseUrl("https://apis-

John Daniels 3 May 24, 2022