Image for post
Image for post

In this article, I’ll try to create categories and criteria for IoT and smart systems comparison.

If you don’t want to read the whole story — click here to go up to the point.

I’ve read a few articles about smart systems. Some systems were created by big brands like Amazon, Google or Philips. Some were small DIY systems…
Do you know what the problem is?
When I read these articles I didn’t know which one would be the best for me! Which should I use?

There’s no one simple way to compare smart systems. Every article I’ve read describes one system or scratches only the surface of the problem and compares only a few similar systems. …


Image for post
Image for post

In this article:

  • I’ll describe my way to collect all logs (from all slaves) in one place (using ZeroMQ)

What Locust is (very short intro):

Locust is a system for load testing written in Python (https://locust.io/). It’s easy when you need to write a few simple tests with HTTP requests only.
It starts to be fun when you want to use a different protocol and write more complicated and complex tests.

I’ll assume you have a basic Python knowledge. If you don’t know Locust, please start with studying its documentation.

Let’s get started!

Disclaimer: this is my second article about extending Locust. Here’s the 1st one (about custom clients)…


In this article:

- I‘ll describe a process of creating custom Locust client for different than HTTP protocol,
- I’ll show you how to create a client which uses more than one protocol.

What Locust is (very short intro):

Locust is a system for load testing written in Python (https://locust.io/). It’s easy when you need to write a few simple tests with HTTP requests only.
It starts to be fun when you want to use different protocol and write more complicated and complex tests.

I’ll assume you have a basic Python knowledge. If you don’t know Locust, please start with studying its documentation.

Let’s get started!

Basic HTTP Client:

First of all — making HTTP requests in Locust is just boring. You can find instructions and examples in documentation — https://docs.locust.io/en/latest/writing-a-locustfile.html#making-http-requests
In short: you need to create a class which inherits from HttpLocust (developed by Locust team). Then you should create your own TaskSet where you can use client via self.client instance, for example: self.client.get(’/about/’).
Locust will handle time measuring, exceptions handling, response size aggregation etc. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store