diff options
-rw-r--r-- | docs/com/img/testapi0.png | bin | 0 -> 37907 bytes | |||
-rw-r--r-- | docs/com/img/testapi1.png | bin | 0 -> 63056 bytes | |||
-rwxr-xr-x | docs/com/pres/conversation.html | 204 | ||||
-rwxr-xr-x | docs/com/pres/testapi.html | 236 |
4 files changed, 440 insertions, 0 deletions
diff --git a/docs/com/img/testapi0.png b/docs/com/img/testapi0.png Binary files differnew file mode 100644 index 000000000..06df74d75 --- /dev/null +++ b/docs/com/img/testapi0.png diff --git a/docs/com/img/testapi1.png b/docs/com/img/testapi1.png Binary files differnew file mode 100644 index 000000000..e9a697449 --- /dev/null +++ b/docs/com/img/testapi1.png diff --git a/docs/com/pres/conversation.html b/docs/com/pres/conversation.html new file mode 100755 index 000000000..fab46247b --- /dev/null +++ b/docs/com/pres/conversation.html @@ -0,0 +1,204 @@ +<!doctype html> +<html lang="en"> + + <head> + <meta charset="utf-8"> + + <title>OPNFV presentation</title> + + <meta name="description" content="Conversation with the Testing community"> + <meta name="author" content="M.Richomme, ...."> + + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + + <link rel="stylesheet" href="../css/reveal.css"> + <link rel="stylesheet" href="../css/theme/OPNFV.css" id="theme"> + + <!-- Code syntax highlighting --> + <link rel="stylesheet" href="../lib/css/zenburn.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../css/print/pdf.css' : '../css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + + <!--[if lt IE 9]> + <script src="lib/js/html5shiv.js"></script> + <![endif]--> + </head> + + <body> + + <div class="reveal"> + <!-- Any section element inside of this container is displayed as a slide --> + <div class="slides"> + + <section data-background="../img/title-bg.png" data-background-transition="none"> + <br> + <h1>Conversation with the Testing Community</h1> + <br><br> + <h4>OPNFV testing community</h4> + <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5> + <br> + + </section> + + <section data-markdown> + >“You make experiments and I make theories. Do you know the difference? A theory is something nobody believes, except the person who made it. An experiment is something everybody believes, except the person who made it." A.Einstein + </section> + + <section data-markdown> + # Agenda + * Who are we? + * Upstream, Upstream, Upstream + * Towards Telco Cloud KPI + </section> + + <section data-markdown> + # Who are we? + ![alt text](https://wiki.opnfv.org/download/attachments/2926690/Testing.png "OPNFV testing group") + </section> + <section> + <section> + <h3>The test projects</h3> + <table> + <thead> + <tr> + <th>Test case</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td>Functest</td> + <td>Umbrella project for Functional testing</td> + </tr> + <tr> + <td>Yardstick</td> + <td>Umbrella project for performance/qualification testing</td> + </tr> + <tr> + <td>CPerf</td> + <td>SDN Controller performance testing</td> + </tr> + <tr> + <td>StorPerf</td> + <td>Storage performance testing</td> + </tr> + <tr> + <td>VSPerf</td> + <td>VSwitch qualification</td> + </tr> + <tr> + <td>Bottlenecks</td> + <td>Detect possible bottlenecks </td> + </tr> + </tbody> + </table> + </section> + + <section data-markdown> + # Functest + * Functional testing to validate scenarios + * Contributors (raise your hands) + * Functest presentation (here...1h ago :)) slide available here + * breakout sessions + * Today 4PM (feature project integration), 5PM (Colorado status) + * tomorrow 11AM (API, test collection), 1PM (work Upstream), 3.15PM (D Release)(to be confirmed...) + </section> + <section data-markdown> + # Yardstick + </section> + <section data-markdown> + # CPerf + </section> + <section data-markdown> + # StorPerf + </section> + <section data-markdown> + # VSPerf + </section> + <section data-markdown> + # Bottlenecks + </section> + </section> + <section> + <section data-markdown> + # Upstream, upstream, upstream.. + </section> + <section data-markdown> + ## We are on the shoulders of the giants + * Rally (OpenStack) + * ODL, ONOS, ... + * RobotFramework, teston + * ..... + </section> + <section data-markdown> + ## Time to give back + </section> + + <section data-markdown> + ## How to improve work with testing upstream community + </section> + + </section> + + <section> + <section data-markdown> + # Towards telco Cloud API... + </section> + + <section data-markdown> + ## + </section> + + </section> + + <section> + <h3>Thank you</h3> + <img width="600" data-src="../img/colorado.png" alt="tests"> + </section> + + </div> + <div class='footer'> + <img src="../img/logo-OPNFV.png" alt="OPNFV logo"> + </div> + </div> + + <script src="../lib/js/head.min.js"></script> + <script src="../js/reveal.js"></script> + + <script> + + // Full list of configuration options available at: + // https://github.com/hakimel/reveal.js#configuration + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: true, + + transition: 'slide', // none/fade/slide/convex/concave/zoom + + // Optional reveal.js plugins + dependencies: [ + { src: '../lib/js/classList.js', condition: function() { return !document.body.classList; } }, + { src: '../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, + { src: '../plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, + { src: '../plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } }, + { src: '../plugin/zoom-js/zoom.js', async: true }, + { src: '../plugin/notes/notes.js', async: true } + ] + }); + + </script> + + </body> +</html> diff --git a/docs/com/pres/testapi.html b/docs/com/pres/testapi.html new file mode 100755 index 000000000..4479b93b4 --- /dev/null +++ b/docs/com/pres/testapi.html @@ -0,0 +1,236 @@ +<!doctype html> +<html lang="en"> + + <head> + <meta charset="utf-8"> + + <title>OPNFV presentation</title> + + <meta name="description" content="Test API"> + <meta name="author" content="Serena Feng"> + + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + + <link rel="stylesheet" href="../css/reveal.css"> + <link rel="stylesheet" href="../css/theme/OPNFV.css" id="theme"> + + <!-- Code syntax highlighting --> + <link rel="stylesheet" href="../lib/css/zenburn.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../css/print/pdf.css' : '../css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + + <!--[if lt IE 9]> + <script src="lib/js/html5shiv.js"></script> + <![endif]--> + </head> + + <body> + + <div class="reveal"> + <!-- Any section element inside of this container is displayed as a slide --> + <div class="slides"> + + <section data-background="../img/title-bg.png" data-background-transition="none"> + <h1>Test API</h1> + <h3>Clean, Easy, Complete</h3> + <br> + <h4>OPNFV testing community</h4> + <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5> + <br> + </section> + + <section data-markdown> + # Agenda + * A test API: what for? + * API overview + * API evolution + </section> + + <section> + <section data-markdown> + # A test API: what for? + </section> + <section data-markdown> + ## Give a consistant view for + * Test projects + * Test cases + * Test resources (Pods) + * Test results + </section> + + <section data-markdown> + ## Unify result display + * From many projects + * Many formats (log, html, json, ..) + * Many locations (in VM, Jumphost, external DB,...) + </section> + + <section data-markdown> + ## Help building + * Dashboards + * Automatic reporting + </section> + </section> + + <section> + <section data-markdown> + # API overview + </section> + <section data-markdown> + ## API in Brahmaputra + * Tornado + MongoDB + * Simple data models aggreed with the testing group + * No unit tests + * Wiki and rst documentation + </section> + + <section data-markdown> + ## API in Brahmaputra + ![testapi](https://wiki.opnfv.org/download/attachments/2926452/results_collection_structure.png?version=1&modificationDate=1459196347000&api=v2 "OPNFV API page") + </section> + <section data-markdown> + ## API in Brahmaputra + ![testapi](../img/testapi0.png) + https://wiki.opnfv.org/display/functest/Collection+Of+Test+Results + </section> + + <section data-markdown> + ## Lessons learned in B. + * Wiki documentation is painful + * result modl too simple + * version used for scenario + * no version + * no overall criteria (passed/failed) + * need unit tests for data model evolution + </section> + <section data-markdown> + ## Colorado refactoring + * done by Serena Feng (ZTE) + * update of the data model (based on lesson learned) + * creation of a swagger tornado framework for the doc + * creation of unit tests + </section> + </section> + + <section> + <section data-markdown> + #API evolution + </section> +<section> + <h3>Test API evolution</h3> + <table> + <thead> + <tr> + <th>Field</th> + <th>Brahmaputra</th> + <th>Colorado</th> + </tr> + </thead> + <tbody> + <tr> + <td>date</td> + <td>creation_date</td> + <td>start_date and stop_date</td> + </tr> + <tr> + <td>version</td> + <td>used as scenario</td> + <td>git version</td> + </tr> + <tr> + <td>scenario</td> + <td>N.R</td> + <td>used for scenario</td> + </tr> + <tr> + <td>test_criteria</td> + <td>N.R</td> + <td>passed/failed</td> + </tr> + <tr> + <td>trust_indictator</td> + <td>N.R</td> + <td>between 0 and 1</td> + </tr> + <tr> + <td>last</td> + <td>N.R</td> + <td>get last N results</td> + </tr> + </tbody> + </table> + </section> + <section data-markdown> + ## Swagger doc + ![alt text](../img/testapi1.png "Test API swagger interface") + </section> +<section> + <h2>unit tests</h2> + <pre><code class="hljs" data-trim contenteditable> +umry8364@umry8364-Latitude-E6400:~/Dev/OPNFV/releng/utils/test/result_collection_api$ ./run_test.sh +Tests running... +WARNING:tornado.general:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1): Project name missing +WARNING:tornado.access:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1) 2.30ms +WARNING:tornado.general:400 POST /api/v1/projects (127.0.0.1): name missing +............ +WARNING:tornado.access:400 POST /api/v1/projects (127.0.0.1) 1.13ms +WARNING:tornado.access:403 PUT /api/v1/projects/functest/cases/vping_1 (127.0.0.1) 2.95ms +WARNING:tornado.general:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1): {'project_name': u'functest', 'name': u'notFound'} could not be found in table [testcases] +WARNING:tornado.access:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1) 2.85ms + +Ran 74 tests in 1.848s +OK + </code></pre> + </section> + </section> + <section> + <h3>Thank you</h3> + <img width="600" data-src="../img/colorado.png" alt="tests"> + </section> + + </div> + <div class='footer'> + <img src="../img/logo-OPNFV.png" alt="OPNFV logo"> + </div> + </div> + + <script src="../lib/js/head.min.js"></script> + <script src="../js/reveal.js"></script> + + <script> + + // Full list of configuration options available at: + // https://github.com/hakimel/reveal.js#configuration + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: true, + + transition: 'slide', // none/fade/slide/convex/concave/zoom + + // Optional reveal.js plugins + dependencies: [ + { src: '../lib/js/classList.js', condition: function() { return !document.body.classList; } }, + { src: '../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, + { src: '../plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, + { src: '../plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } }, + { src: '../plugin/zoom-js/zoom.js', async: true }, + { src: '../plugin/notes/notes.js', async: true } + ] + }); + + </script> + + </body> +</html> |