summaryrefslogtreecommitdiffstats
path: root/docs/testing/user/userguide/testing_scheduler_user_guide.rst
blob: 9820810ed772509e2f4f54dc0bdc259dc6fe27f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) Huawei Technologies Co.,Ltd and others.

****************************
Test-scheduler User Guide
****************************


Test-scheduler Introduction
==============================

Test scheduler aims to schedule the testing process on NFV(Network
Function Virtualizaion) platform or MSA(Microservice Architecture)
application.By creating a testcase, you can implements a testing
process integrates and schedules the other testing frameworks and tools.
You can also create a testsuite which contains several testcases, and run
all the testcases at a time.


Preinstall Packages
===================

* Docker: https://docs.docker.com/engine/installation/
    * For Ubuntu, please refer to https://docs.docker.com/engine/installation/linux/ubuntu/

* Docker-Compose: https://docs.docker.com/compose/

.. code-block:: bash

    if [ -d usr/local/bin/docker-compose ]; then
        rm -rf usr/local/bin/docker-compose
    fi
    curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose


Run Test-scheduler
=====================

There are a few steps to do.


Download Bottlenecks Software
-----------------------------

.. code-block:: bash

    mkdir -p /some/dir
    git clone https://gerrit.opnfv.org/gerrit/bottlenecks
    cd bottlenecks/test-scheduler


Build And Run Docker Containers
-------------------------------

.. code-block:: bash

    cd docker
    sh build.sh
    sh run.sh


build.sh is used to build the images, and run.sh is use to
run the containers based on the images.
If you are not the root user, you need to use 'sudo', like:

.. code-block:: bash

    cd docker
    sudo sh build.sh
    sudo sh run.sh


Otherwise there will be a problem of "Permission Denied".
The second command takes approximately 1h to finish(
so need some patience :) ), and the latter one just takes a few minutes.

You can use command the check whether all the containers are in running.

.. code-block:: bash

    docker ps

if the output contains 6 containers as below, then the project
runs successfully:

* t-scheduler-server
* t-scheduler-ui
* conductor_conductor-server_1
* conductor_conductor-ui_1
* conductor_dynomite_1
* conductor_elasticsearch_1

Sometimes, the command execution fails, and you need to read the sections:
*(Optional)Commands Explanation* ,
*(Optional) Build And Run Containers Seperately* to solve it.


Start To Use Via Web
--------------------
You can visit the web pages via the url: http://your-host-ip:5311/.

You can do these operations:

* test suite CRUD
* test case CRUD
* execute a single test case
* execute several chosen test cases
* execute a single test suite
* test service CRUD
* context setting

Cleaning Up Environment
-----------------------

.. code-block:: bash

    cd docker
    sh clean.sh


(Optional)Commands Explanation
------------------------------

The directory(**docker**) contains the shell scripts which are used
to build this project(**test-scheduler**) as a dockerized application.
Built by these scripts, the dockerized application will contain
6 containers(1 + 1 + 4). They can be divided as three components:

* 1 server container: server component of **test-scheduler**.
* 1 webUI container: ui component of **test-scheduler**.
* a group of 4 containers of Conductor.

Correspondingly, there are three subdirectories in the current
directory(**docker**):

* server: contains scirpts of running server container.
* ui: contains scirpts of running ui container.
* plugin:  contains scirpts of running Conductor containers.

The three subdirectories contains scripts respectively.The scripts
(in one subdirectory) are used to build image and start container
for the single component.

Essentially,  the **build.sh**  and **run.sh** (in the directory(**docker**))
call the subdirectory scripts to build all three components.


(Optional) Build And Run Containers Seperately
----------------------------------------------

If you run the containers successfully, you can skip this section.
As said in *Build And Run Docker Containers*, build step will need about 1h to
finish.But it sometime will failed due to the network, and the rebuild will
take a great time cost.So we can build and run the containers seperately
according to the three subdirectories(**server**, **ui**, **plugin**).The
steps are similar to *Build And Run Docker Containers*.

*IMPORTANT: There are relationships in these components(some need to be
created before other).So you can only build the components below in the
order:* **plugin** -> **server** -> **ui** .

* enter the subdirectory(**$dir** stands for **server**, **ui**, **plugin**).

.. code-block:: bash

    cd $dir

* build the docker images.

.. code-block:: bash

    sh build.sh

* run the docker containers.

.. code-block:: bash

    sh run.sh