Skip to content

Development

MkDocs sitemap.xml file generation

Here at OctoPerf we love static website generators. Even if our load testing tool is made completely dynamic by AngularJS, our website and blog are generated using Jekyll.

The OctoPerf documentation is created with MkDocs. This wonderful tool allowed us to concentrate on the documentation content as the markdown syntax is really easy to comprehend.

Moreover, the responsive themes let us integrate the documentation directly into our performance testing tool:

OctoPerf integrated documentation

When we first wrote it, MkDocs version was 0.12.0. It did not support sitemap.xml file generation. This guide helps migrating to the latest version (0.14.0).

Building Better Software

OctoPerf has been built from the ground with one unique idea: writing code that's pleasant to work with. Code quality is our number one priority. When you create your own startup, you quickly understand that the number one enemy are not your competitors: it is yourself!

When creating a startup you realize that your product:

  • must be released as quickly as possible on the market,
  • needs as many features as possible to catch back the competitors,
  • must be bug free to give your users the best possible experience.

Performance comes with a trade-off

Everyone knows that having a website which is fast is better than slow. But, did you know that improving the speed of your web application almost always comes with a trade-off?

Like Antoine Lavoisier said Nothing is lost, nothing is created, everything is transformed. What happens when altering a web or mobile app to improve its performances?

How fast do you want to be?

First of all, you should ask yourself this question. Try to target a reasonable goal, and stick to it. Maybe is your web or mobile app already fast enough? Load testing your app gives you how fast your application behaves under a given load. Is the app within the reasonable target response time?

Hosting Jekyll on Amazon Web Services

Our need is to create a fast website, in as less time as possible. Time is money, and when you launch a Startup, it is a very scarce resource.

Our prerequisites:

  • Best possible response times from anywhere in our geographical market (Worldwide: USA, Europe and India).
  • An already designed website template, we are not CSS gurus, and building it from scratch takes too much time.
  • Easy to customize, it must match our graphic design with just a few modifications.
  • Maintainable, we must be able to add content quickly.
  • Can be deployed using Jenkins, our continuous integration tool.

That is why we choose to use Jekyll to create a static website deployed on Amazon Web Services (S3 and CloudFront).

Why We Chose JMeter

When we started to think how to build OctoPerf, about one year ago, we had several options to create our stress testing platform:

  • Write our own HTTP engine from the ground,
  • Use command line tools like Curl,
  • Reuse an existing open-source HTTP engine, but which one? (Gatling Tool, JMeter, Grinder...)

It took us several months to choose which one was the right option. When you are building a startup, the biggest constraint is obviously Time. It is the limitation factor.

But, you must spend the right time on your product to bring value to the customers.

Writing Our own Engine from scratch

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}