Added NSB sample Test Case documentation.
[yardstick.git] / docs / testing / user / userguide / 04-installation.rst
index c1325ca..b40e114 100644 (file)
@@ -63,6 +63,10 @@ Prepare the Yardstick container
 
 .. _dockerhub: https://hub.docker.com/r/opnfv/yardstick/
 
+Install docker on your guest system with the following command, if not done yet::
+
+  wget -qO- https://get.docker.com/ | sh
+
 Pull the Yardstick Docker image (``opnfv/yardstick``) from the public dockerhub
 registry under the OPNFV account: dockerhub_, with the following docker
 command::
@@ -78,7 +82,7 @@ following docker command::
 
 Run the Docker image to get a Yardstick container::
 
-  docker run -itd --privileged -v /var/run/docker.sock:/var/run/docker.sock -p 8888:5000 -e INSTALLER_IP=192.168.200.2 -e INSTALLER_TYPE=compass --name yardstick opnfv/yardstick:stable
+  docker run -itd --privileged -v /var/run/docker.sock:/var/run/docker.sock -p 8888:5000 --name yardstick opnfv/yardstick:stable
 
 Note:
 
@@ -97,21 +101,6 @@ Note:
 |                                              | Yardstick container, this    |
 |                                              | parameter is needed.         |
 +----------------------------------------------+------------------------------+
-| -e INSTALLER_IP=192.168.200.2                | If you want to use yardstick |
-|                                              | env prepare command(or       |
-| -e INSTALLER_TYPE=compass                    | related API) to load the     |
-|                                              | images that Yardstick needs, |
-|                                              | these parameters should be   |
-|                                              | provided.                    |
-|                                              | The INSTALLER_IP and         |
-|                                              | INSTALLER_TYPE are depending |
-|                                              | on your OpenStack installer. |
-|                                              | Currently Apex, Compass,     |
-|                                              | Fuel and Joid are supported. |
-|                                              | If you use other installers, |
-|                                              | such as devstack, these      |
-|                                              | parameters can be ignores.   |
-+----------------------------------------------+------------------------------+
 | -p 8888:5000                                 | If you want to call          |
 |                                              | Yardstick API out of         |
 |                                              | Yardstick container, this    |
@@ -145,7 +134,18 @@ In the Yardstick container, the Yardstick repository is located in the ``/home/o
 
   yardstick env prepare
 
-**NOTE**: The above command just works for four OPNFV installers -- **Apex**, **Compass**, **Fuel** and **Joid**.
+**NOTE**: Since Euphrates release, the above command will not able to automatically configure the /etc/yardstick/openstack.creds file.
+So before running the above command, it is necessary to create the /etc/yardstick/openstack.creds file and save OpenStack environment variables into it manually.
+If you have the openstack credential file saved outside the Yardstcik Docker container, you can do this easily by mapping the credential file into Yardstick container
+ using '-v /path/to/credential_file:/etc/yardstick/openstack.creds' when running the Yardstick container.
+For details of the required OpenStack environment variables please refer to section **Export OpenStack environment variables**
+
+The env prepare command may take up to 6-8 minutes to finish building
+yardstick-image and other environment preparation. Meanwhile if you wish to
+monitor the env prepare process, you can enter the Yardstick container in a new
+terminal window and execute the following command::
+
+  tail -f /var/log/yardstick/uwsgi.log
 
 
 The second way
@@ -200,6 +200,8 @@ follwing the commands below::
 
 This image can be built using the following command in the directory where Yardstick is installed::
 
+  export YARD_IMG_ARCH='amd64'
+  sudo echo "Defaults env_keep += \'YARD_IMG_ARCH\'" >> /etc/sudoers
   sudo tools/yardstick-img-modify tools/ubuntu-server-cloudimg-modify.sh
 
 **Warning:** Before building the guest image inside the Yardstick container, make sure the container is granted with privilege. The script will create files by default in ``/tmp/workspace/yardstick`` and the files will be owned by root!
@@ -267,14 +269,23 @@ Docker image from Docker hub::
 Install Yardstick
 ^^^^^^^^^^^^^^^^^^^^^
 
+Prerequisite preparation::
+
+  apt-get update && apt-get install -y git python-setuptools python-pip
+  easy_install -U setuptools==30.0.0
+  pip install appdirs==1.4.0
+  pip install virtualenv
+
 Create a virtual environment::
 
   virtualenv ~/yardstick_venv
+  export YARDSTICK_VENV=~/yardstick_venv
   source ~/yardstick_venv/bin/activate
 
 Download the source code and install Yardstick from it::
 
   git clone https://gerrit.opnfv.org/gerrit/yardstick
+  export YARDSTICK_REPO_DIR=~/yardstick
   cd yardstick
   ./install.sh
 
@@ -417,6 +428,141 @@ Deploy InfluxDB and Grafana directly in Ubuntu (**Todo**)
 -----------------------------------------------------------
 
 
+Yardstick common CLI
+--------------------
+
+list test cases
+>>>>>>>>>>>>>>>
+**yardstick testcase list**
+
+This command line would list all test cases in yardstick.
+It would show like below::
+
+  +---------------------------------------------------------------------------------------
+  | Testcase Name         | Description
+  +---------------------------------------------------------------------------------------
+  | opnfv_yardstick_tc001 | Measure network throughput using pktgen
+  | opnfv_yardstick_tc002 | measure network latency using ping
+  | opnfv_yardstick_tc005 | Measure Storage IOPS, throughput and latency using fio.
+  | opnfv_yardstick_tc006 | Measure volume storage IOPS, throughput and latency using fio.
+  | opnfv_yardstick_tc008 | Measure network throughput and packet loss using Pktgen
+  | opnfv_yardstick_tc009 | Measure network throughput and packet loss using pktgen
+  | opnfv_yardstick_tc010 | measure memory read latency using lmbench.
+  | opnfv_yardstick_tc011 | Measure packet delay variation (jitter) using iperf3.
+  | opnfv_yardstick_tc012 | Measure memory read and write bandwidth using lmbench.
+  | opnfv_yardstick_tc014 | Measure Processing speed using unixbench.
+  | opnfv_yardstick_tc019 | Sample test case for the HA of controller node service.
+  ...
+  +---------------------------------------------------------------------------------------
+show a test case config file
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Take opnfv_yardstick_tc002 for an example. This test case measure network latency.
+You just need to type in **yardstick testcase show opnfv_yardstick_tc002**, and the console
+would show the config yaml of this test case::
+  ##############################################################################
+  # Copyright (c) 2017 kristian.hunt@gmail.com and others.
+  #
+  # All rights reserved. This program and the accompanying materials
+  # are made available under the terms of the Apache License, Version 2.0
+  # which accompanies this distribution, and is available at
+  # http://www.apache.org/licenses/LICENSE-2.0
+  ##############################################################################
+  ---
+
+  schema: "yardstick:task:0.1"
+  description: >
+      Yardstick TC002 config file;
+      measure network latency using ping;
+
+  {% set image = image or "cirros-0.3.5" %}
+
+  {% set provider = provider or none %}
+  {% set physical_network = physical_network or 'physnet1' %}
+  {% set segmentation_id = segmentation_id or none %}
+  {% set packetsize = packetsize or 100 %}
+
+  scenarios:
+  {% for i in range(2) %}
+  -
+    type: Ping
+    options:
+      packetsize: {{packetsize}}
+    host: athena.demo
+    target: ares.demo
+
+    runner:
+      type: Duration
+      duration: 60
+      interval: 10
+
+    sla:
+      max_rtt: 10
+      action: monitor
+  {% endfor %}
+
+  context:
+    name: demo
+    image: {{image}}
+    flavor: yardstick-flavor
+    user: cirros
+
+    placement_groups:
+      pgrp1:
+        policy: "availability"
+
+    servers:
+      athena:
+        floating_ip: true
+        placement: "pgrp1"
+      ares:
+        placement: "pgrp1"
+
+    networks:
+      test:
+        cidr: '10.0.1.0/24'
+        {% if provider == "vlan" %}
+        provider: {{provider}}
+        physical_network: {{physical_network}}å
+          {% if segmentation_id %}
+        segmentation_id: {{segmentation_id}}
+          {% endif %}
+        {% endif %}
+
+start a task to run yardstick test case
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+If you want run a test case, then you need to use **yardstick task start <test_case_path>**
+this command support some parameters as below:
+
++---------------------+--------------------------------------------------+
+| Parameters          | Detail                                           |
++=====================+==================================================+
+| -d                  | show debug log of yardstick running              |
+|                     |                                                  |
++---------------------+--------------------------------------------------+
+| --task-args         | If you want to customize test case parameters,   |
+|                     | use "--task-args" to pass the value. The format  |
+|                     | is a json string with parameter key-value pair.  |
+|                     |                                                  |
++---------------------+--------------------------------------------------+
+| --task-args-file    | If you want to use yardstick                     |
+|                     | env prepare command(or                           |
+|                     | related API) to load the                         |
++---------------------+--------------------------------------------------+
+| --parse-only        |                                                  |
+|                     |                                                  |
+|                     |                                                  |
++---------------------+--------------------------------------------------+
+| --output-file \     | Specify where to output the log. if not pass,    |
+| OUTPUT_FILE_PATH    | the default value is                             |
+|                     | "/tmp/yardstick/yardstick.log"                   |
+|                     |                                                  |
++---------------------+--------------------------------------------------+
+| --suite \           | run a test suite, TEST_SUITE_PATH speciy where   |
+| TEST_SUITE_PATH     | the test suite locates                           |
+|                     |                                                  |
++---------------------+--------------------------------------------------+
+
+
 Run Yardstick in a local environment
 ------------------------------------