Jump to: navigation, search


< Zaqar
Revision as of 11:02, 28 August 2015 by Flaper87 (talk | contribs) (Testing Scenarios)


Welcome to Zaqar's Liberty Test Day

First and foremost, thanks for loading this page. It likely means you'll help out testing Zaqar, or, at the very least, you'll help us improving the page itself.

Before we even start testing Zaqar, it's important to clarify what Zaqar is. Therefore, I'd recommend you to Zaqar's wiki page and read the overview. If it isn't clear, please report it and feel good because you've already helped us testing the project.

Where should I report an issue?

We hangout on IRC, most of the time. You can find the required information here. The channel is very active and we love newcomers so, that'd be a good place for you to hangout on and to report the issues you find.

However, if you'd like to help even further and provide a more detailed report that we can track and love you more for, I'd suggest you to go to Zaqar's or Zaqarclient's launchpad trackers and file a bug there.

The bug will be triaged and fixed, promissed.

Shut up and take my time

Awesome, let's get to it.

The test day is about testing Zaqar live, manually, and hopefully without using `curl`. The idea is not to test Zaqar using `tox` but to install it, stress the APIs, use zaqarclient and make sure the service is stable and as bug-free as possible. Let's let our dear servant, Jenkins, to take care of `tox`.

The testing session will be devided in different groups. These groups represent a specific deployment method. As much as we'd like you to help testing all of them, we do realize you've a life and you probably want to go out and do something more exciting. Therefore, we'll be more than happy if you could get at least 1 of these tasks and help us testing it. However, if the day in your area is rainy and you've nothing better to do, please please please, take a couple of more. We'll give you more gummybears.

Software Requirements

Depending on the scenario you'd like to test, you'll need to install extra sfotware to be able to complete such task. Please, read below the instructions to install the tecnology you'll need for the secnario you've picked.


For mongodb, we'll defer the install instructions to the MongoDB documentation itself, since they know better. However, for this testing day, it's recommended to run `mongod` manually rather than using the system's scripts. This will give you more control over the binding settings, which we'll have to change to test some of the scenarios listed below.

Let's first create some temp dirs for mongodb's data:

$ mkdir -p /tmp/mongodb{1,2}

To run `mongod` from the shell, you should execute (each on a dedicated shell):

$ mongod --port 27017 --dbpath /tmp/mongodb1

$ mongod --port 28017 --dbpath /tmp/mongodb2

Note that the instructions above require you to execute 2 mongod nodes. You might not use them both but, for the sake of making the instructions below simpler, it's requested to execute them all, regardless.





Testing Scenarios

Each test scenario comes with a config file that you can download and run Zaqar with. If you've followed a different path or configurations to install the storage engines, you'll need to modify these files accordingly.

Data: mongodb, Control: mongodb Data: mongodb, Control: sqlalchemy Data: redis, Control: mongodb Data: redis, Control: sqlalchemy
With pools flaper87 [results] flaper87 [results] flwang [results]
Without pools flaper87 [results] flaper87 [results] flwang [results]

With Pools

If you're reading this is, likely, because you've chosen to help us test Zaqar's pool functionality. If you're not familiar with how Zaqar's pools work, I'd recommend you to read this blog post. If you don't find it helpful enough, please, don't hesitate to ask. You know where to find us.

That said, the TL;DR of Zaqar pools is that they behave like storage shards and allow Zaqar's storage to be scaled out.

On a pooled environment, the same tests from a non-pooled one are required. However, it's necessary to prepare the environment for that. We need to create some pools first:

Without Pools