User Tools

Site Tools


collection_of_test_results

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
collection_of_test_results [2015/10/09 17:44]
Morgan Richomme
collection_of_test_results [2016/01/08 13:57] (current)
Nauman Ahad
Line 1: Line 1:
 +====== Test Result Collection Api ======
 +
 +
 ====== Description ====== ====== Description ======
 The mission of this project is to provide a common way for gathering all the results of OPNFV tests projects into a single place. It should expose a REST API for the collect of results and push them into a MongoDB database. The mission of this project is to provide a common way for gathering all the results of OPNFV tests projects into a single place. It should expose a REST API for the collect of results and push them into a MongoDB database.
Line 33: Line 36:
 [ [
   {   {
-    "​id": ​1+    "​id": ​""​
-    "​name":​ "functest", ​   ​+    "​name":​ "", 
 +    "​creation_date":​ "​YYYY-MM-DD HH:MM:SS", ​   ​
     "​description":""​     "​description":""​
   },   },
Line 44: Line 48:
 <code json> <code json>
 [ [
 +
   {   {
-    "​id":​1.1,+    "​id": ​""​,
     "​name":"",​     "​name":"",​
-    "testproject": "1", +    "creation_date": "YYYY-MM-DD HH:MM:SS",
-    "​test"​"",+
     "​description":​ "",​     "​description":​ "",​
     "​url":""​     "​url":""​
Line 61: Line 65:
 [ [
   {   {
-    "​_id":​ "55fc09a0514bc52b173a2826", +    "​_id":​ "",​ 
-    "​project_name":​ "functest", +    "​project_name":​ "",​ 
-    "​pod_name":​ "opnfv-jump-2", +    "​pod_name":​ "",​ 
-    "​version":​ "Arno-R1", +    "​version":​ "",​ 
-    "​installer":​ "fuel",+    "​installer":​ "",​
     "​description":​ "",​     "​description":​ "",​
-    "​creation_date":​ "2015-09-18 12:54:56.059000", +    "​creation_date":​ "YYYY-MM-DD HH:MM:SS", 
-    "​case_name":​ "vPing"+    "​case_name":​ ""​
     "​details":​{     "​details":​{
        <- the results to be put here ->        <- the results to be put here ->
Line 81: Line 85:
  
  
-==== version ​==== +==== Version ​==== 
-^METHOD ​^PATH ^Description ^+ 
 +^Method ​^Path ^Description ^
 | GET | /version | API version | | GET | /version | API version |
  
  
-==== pods ==== +==== Pods ==== 
-^METHOD ​^PATH ^Description ^+ 
 +^Method ​^Path ^Description ^
 | GET | /pods | Get the list of declared PODs | | GET | /pods | Get the list of declared PODs |
-| POST | /pods | Create a new POD |+| POST | /pods | Create a new POD  \\ Content-Type:​ application/​json \\ {  \\ "​name":​ "​pod-foo", ​ \\ "​creation_date":​ "​YYYY-MM-DD HH:​MM:​SS"​ \\ } |
  
  
-==== test projects ==== +==== Test projects ==== 
-^METHOD ​^PATH ^Description ^+ 
 +^Method ​^Path ^Description ^
 | GET | /​test_projects | Give the list of test projects | | GET | /​test_projects | Give the list of test projects |
-| GET | /​test_projects/​foo | Give details on foo project | +| GET | /​test_projects/​{project_name} ​| Give details on the selected ​project | 
-GET | /​test_projects/​foo/​cases Give details on the testcases of the foo project |+POST | /​test_projects ​| Add a Test project \\ Content-Type:​ application/json \\ {  \\ "​name":​ "​project-foo", ​ \\ "​description":​ "​Example with project foo" \\ } | 
 +| PUT | /test_projects/​{project_name} ​Update project ​ \\ { \\ <the field(s) you want to modify> \\ } | 
 +| DELETE | /​test_projects/​{project_name} | Delete ​project ​\\ Content-Type:​ application/​json \\ { \\ } |
  
-==== test results ==== 
  
 +==== Test cases ====
  
 +^Method ^Path ^Description ^
 +| GET | /​test_projects/​{project_name}/​cases | Give details on the testcases of the foo project |
 +| POST | /​test_projects/​{project_name}/​cases | Add test cases  \\ Content-Type:​ application/​json \\ {  \\  "​url":​ "<​the url detailing the testcase>", ​ \\ "​creation_date":​ "​YYYY-MM-DD HH:​MM:​SS", ​ \\ "​name":​ "​vFoo", ​ \\ "​description":​ "vFoo use case" \\ } |
 +| PUT | /​test_projects/​{project_name}?​case_name={case_name} | Modify a test case \\ Content-Type:​ application/​json ​ \\ { \\ < the field(s) to be modified > \\ } |
 +| DELETE | | Remove a test case \\ Content-Type:​ application/​json ​ |
  
 +==== test results ====
  
-Here are the key functions ​:+^Method ^Path ^Description ^ 
 +| GET | /results | Get all the test results | 
 +| GET | /​results/​project={test_project_name} | Get all the results of the test project {test_project_name} | 
 +| GET | /​results/​case={test_case_name} | Get all the results of the test case {test_case_name} | 
 +| GET | /​results?​pod={pod_name} | Get all the results executed on pod {pod_name} ​ | 
 +| GET | /​results?​installer={installer_name} | Get all the results done with installer {installer_name} ​ | 
 +| GET | /​results?​version={version_name} | Get all the results done with version {version_name} ​ | 
 +| GET | /​results?​period={days} | Get all the results stored since {Days} days  | 
 +| GET | /​results?​project={test_project_name}&​case={case_name}[&​installer={installer_name}&​version={version_name}&​pod={pod_name}&​period={days}] | Get all the results of the test case {case_name} of the project {project_name} with version {version_name} installed by installer {installer_name} on POD {pod_name} stored since {days} days \\ {project_name} and {case_name} ​are mandatory, ​the other parameters are optional ​ | 
 +| POST |/​results ​ | Add test result in the Database ​ \\ Content-Type:​ application/​json ​ \\ {  \\ "​project_name":​ {project_name}, ​ \\ "​case_name":​ {case_name}, ​ \\ "​pod_name":​ {pod_name}, ​ \\ "​installer":​ {installer_name}, ​ \\ "​version":​{version_name}, ​ \\ "​details"​{ <your results> }  \\ } |
  
-**Test projects** +==== test results ​====
-  * List all test projects  +
-  * Details on a specific test project +
-  * Create a test project +
-  * Update a test project +
- +
-**Test cases** +
-Specifiying a test project : +
-  * List all test cases +
-  * Details on a test case +
-  * Create a test case +
-  * Update a test case +
- +
-**Test ​results** +
-Specfiying both test project and test case : +
-  * List all test results +
-  * Details on a test result +
-  * Push a test result +
-  * Remove a test result +
- +
-This API will rely on JSON to represent states of REST resources. ​  +
-See the full API specification [[collection_api|here]].+
  
 +^Method ^Path ^Description ^
 +| GET | /dashboard | Get all the test projects providing dashboard ready results |
 +| GET | dashboard?​project={project_name}&​case={case_name}[&​pod={pod_name}&​installer={installer_name}&​version={version_name}&​period={days}] | Get all the results (in dashboard ready format) of the test case {case_name} of the project {project_name} with version {version_name} installed by installer {installer_name} on POD [pod_name} stored since {days} days \\ {project_name} and {case_name} are mandatory, the other parameters are optional |
collection_of_test_results.1444412699.txt.gz · Last modified: 2015/10/09 17:44 by Morgan Richomme