Browse Source

DOCs and Autodoc improved

bernhardbuhl 4 years ago
parent
commit
5345fd1f7d
84 changed files with 3297 additions and 176 deletions
  1. 2 92
      README.md
  2. 5 3
      baangt/base/TestRun.py
  3. 3 1
      baangt/ui/ui.py
  4. 38 0
      docs/Installation.rst
  5. 33 2
      docs/OverviewUsage.rst
  6. 2 0
      docs/ParametersConfigFile.rst
  7. BIN
      docs/_build/doctrees/Developer.doctree
  8. BIN
      docs/_build/doctrees/Installation.doctree
  9. BIN
      docs/_build/doctrees/OverviewUsage.doctree
  10. BIN
      docs/_build/doctrees/ParametersConfigFile.doctree
  11. BIN
      docs/_build/doctrees/contributors.doctree
  12. BIN
      docs/_build/doctrees/docs/baangt.base.doctree
  13. BIN
      docs/_build/doctrees/docs/baangt.ui.doctree
  14. BIN
      docs/_build/doctrees/environment.pickle
  15. BIN
      docs/_build/doctrees/index.doctree
  16. 246 0
      docs/_build/html/Installation.html
  17. 31 4
      docs/_build/html/OverviewUsage.html
  18. 8 3
      docs/_build/html/ParametersConfigFile.html
  19. BIN
      docs/_build/html/_images/screenshotBaangtIA.png
  20. 39 0
      docs/_build/html/_sources/Developer.rst.txt
  21. 38 0
      docs/_build/html/_sources/Installation.rst.txt
  22. 33 2
      docs/_build/html/_sources/OverviewUsage.rst.txt
  23. 2 0
      docs/_build/html/_sources/ParametersConfigFile.rst.txt
  24. 30 0
      docs/_build/html/_sources/contributors.rst.txt
  25. 12 7
      docs/_build/html/_sources/index.rst.txt
  26. 1 0
      docs/_build/html/_static/css/badge_only.css
  27. 6 0
      docs/_build/html/_static/css/theme.css
  28. BIN
      docs/_build/html/_static/file.png
  29. BIN
      docs/_build/html/_static/fonts/Inconsolata-Bold.ttf
  30. BIN
      docs/_build/html/_static/fonts/Inconsolata-Regular.ttf
  31. BIN
      docs/_build/html/_static/fonts/Inconsolata.ttf
  32. BIN
      docs/_build/html/_static/fonts/Lato-Bold.ttf
  33. BIN
      docs/_build/html/_static/fonts/Lato-Regular.ttf
  34. BIN
      docs/_build/html/_static/fonts/Lato/lato-bold.eot
  35. BIN
      docs/_build/html/_static/fonts/Lato/lato-bold.ttf
  36. BIN
      docs/_build/html/_static/fonts/Lato/lato-bold.woff
  37. BIN
      docs/_build/html/_static/fonts/Lato/lato-bold.woff2
  38. BIN
      docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot
  39. BIN
      docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf
  40. BIN
      docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff
  41. BIN
      docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2
  42. BIN
      docs/_build/html/_static/fonts/Lato/lato-italic.eot
  43. BIN
      docs/_build/html/_static/fonts/Lato/lato-italic.ttf
  44. BIN
      docs/_build/html/_static/fonts/Lato/lato-italic.woff
  45. BIN
      docs/_build/html/_static/fonts/Lato/lato-italic.woff2
  46. BIN
      docs/_build/html/_static/fonts/Lato/lato-regular.eot
  47. BIN
      docs/_build/html/_static/fonts/Lato/lato-regular.ttf
  48. BIN
      docs/_build/html/_static/fonts/Lato/lato-regular.woff
  49. BIN
      docs/_build/html/_static/fonts/Lato/lato-regular.woff2
  50. BIN
      docs/_build/html/_static/fonts/RobotoSlab-Bold.ttf
  51. BIN
      docs/_build/html/_static/fonts/RobotoSlab-Regular.ttf
  52. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
  53. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
  54. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
  55. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
  56. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
  57. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
  58. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
  59. BIN
      docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
  60. BIN
      docs/_build/html/_static/fonts/fontawesome-webfont.eot
  61. 2671 0
      docs/_build/html/_static/fonts/fontawesome-webfont.svg
  62. BIN
      docs/_build/html/_static/fonts/fontawesome-webfont.ttf
  63. BIN
      docs/_build/html/_static/fonts/fontawesome-webfont.woff
  64. BIN
      docs/_build/html/_static/fonts/fontawesome-webfont.woff2
  65. 4 0
      docs/_build/html/_static/js/modernizr.min.js
  66. 3 0
      docs/_build/html/_static/js/theme.js
  67. BIN
      docs/_build/html/_static/minus.png
  68. BIN
      docs/_build/html/_static/plus.png
  69. 11 15
      docs/_build/html/docs/baangt.base.html
  70. 3 1
      docs/_build/html/docs/baangt.ui.html
  71. 2 0
      docs/_build/html/docs/modules.html
  72. 2 0
      docs/_build/html/docs/setup.html
  73. 9 7
      docs/_build/html/genindex.html
  74. 32 16
      docs/_build/html/index.html
  75. BIN
      docs/_build/html/objects.inv
  76. 9 7
      docs/_build/html/py-modindex.html
  77. 9 7
      docs/_build/html/search.html
  78. 1 1
      docs/_build/html/searchindex.js
  79. BIN
      docs/_static/file.png
  80. BIN
      docs/_static/minus.png
  81. BIN
      docs/_static/plus.png
  82. 12 8
      docs/index.rst
  83. BIN
      docs/screenshotBaangtIA.png
  84. BIN
      docs/testrun.db

+ 2 - 92
README.md

@@ -1,95 +1,5 @@
 # Welcome
-This is the current release of baangt: "Basic And Advanced Next Generation Testing".
-
-## Installation in a python virtual environment:
-Depending on your virtual environment something along these lines:
-```
-conda create baangt
-conda activate baangt
-pip install baangt
-```
-## Installation from GIT-Repository:
-Clone the repository: `GIT CLONE https://gogs.earthsquad.global/baangt`
-
-Then fire up your favorite virtual environment, e.g. 
-`CONDA create baangt`, activate it, e.g. `CONDA activate baangt` and install the necessary requirements: 
-`pip install -r requirements.txt` and you're good to go.
-
-
-## Usage
-Use `baangt` for API, oData V2/V4, Browser (Chrome, Firefox, Safari, IE and more) Testing based on a common 
-data layer. As complex as this sounds, as easy is it to start with, give it a try!
-## Preparation
-You need at least a data- and a sequence definition file (example: `DropsSimple.xlsx` in the root folder of `baangt`).
-## Run the Testcase
-`Python baangt.py --run="DropsSimple.xlsx"` will execute the testcases defined in the file (login to drops-app, recycle 
-a product)
-## Receive the results
-You'll find the output file in the folder `1testoutput` as XLSX with a summary of duration, successful vs. non-successful 
-testcases and a second tab with details for each looped testcase.
-## Awesome, but not enough?
-You're deeply impressed by the simplicity of the solution, but want MORE? We've got you covered. The second example shows 
-the same outcome with much greater flexibility. For the second execution you'll use DropsTestRunDefinition.xlsx-File. 
-You can see there are more Tabs than in the first example, for instance can you specify which datafile and 
-tabname(s) to use for execution of a testrun, which lines from the datafile to skip/run, which browser to use and much more.
-Calling ``baangt.py`` is still same simple:
-`Python baangt.py --run="DropsTestRunDefinition"`. Again you'll find an excel sheet in the folder `1Testoutput`.
-## Nice(r), but how about a real life example?
-You're right. Nobody can test his application with 5 datafields and 1 business process. 
-
-Real life regression tests often span multiple applications (thus we use TestCaseSequence), many business processes 
-(the testcases) and each of them in countless variations (datafile with usage of TestStepSequences). 
-No matter, how complex the application under test is, the start is always a Testrun definition. 
-
-Btw. try `python baangt.py` without parameters to start the UI. It should run on Mac, Windows and all major 
-Linux-Distributions with X11 
-## Still want more? Create your own TestStepClass:
-Every once in a while the TestStep-Definition via XLSX or the database will not be enough for your use-case. You can 
-easily subclass whatever you need and still use the rest of the framework.
-```
-from baangt.TestStep import TestStepMaster
-
-class myTestStep(TestStepMaster):
-    def execute():
-        self.driver.goToURL("http://www.google.com")
-        self.driver.findByAndSetText(xpath='//input[@type="text"]', value='baangt')
-        self.driver.findByAndClick(xpath='(//input[contains(@type,'submit')])[3]')
-
-```
-
-That's it. All the rest is taken care of by baangt. You'll also receive a nice export file showing timing information 
-for your TestCase.
-
-You can subclass any other functionality, that doesn't fully fit your needs (IBAN-Generation, Browser-Handling, Timing) 
-and also create your own Assertion-classes (for instance if you need to receive data from a Host-System or 
-RFC/SOAP-Connection, which is not natively supported by ``baangt.py``). Of course you'd only re-implement methods, 
-that you need to enrich and consume everything else from the framework.
-
-## Browser related knowledge
-### Setting, which browser to start
-* Method 1:
-Set the browser in the Testrun Definition (either in XLSX in Tab `TestCase` in the column `Browser` or in JSON:
-
-```
-  "dontCloseBrowser": "True",
-  "TC.Browser": "CHROME"
-``` 
-)
-
-* Method 2:
-Set the browser in the `globals.json` file to overwrite any settings of the testrun definition.
-```
-  "dontCloseBrowser": "True",
-  "TC.Browser": "CHROME"
-``` 
-Then call `baangt.py` as usual:
-
-`python baangt.py --run="someRunNameXLSXorJSON" --globals='mynewGlobals.json'`
-
-### Starting browser in Headless Mode:
-Either in XLSX or in JSON on level TestCase set the BrowserOptions as follows:
-
-`{'HEADLESS': 'True'}`
+Please find the full documentation on [ReadTheDocs](https://baangt.readthedocs.io)
 
 # Further reading:
-Please see latest news on http://baangt.org for community edition and http://baangt.com for corporate environments.
+Latest news on http://baangt.org for community edition and http://baangt.com for corporate environments.

+ 5 - 3
baangt/base/TestRun.py

@@ -94,10 +94,11 @@ class TestRun:
         if global setting TC.EXECUTION_SLOW is set, inform the browser instance about it.
 
         @param browserInstance: Number of the requested browser instance. If none is provided, always the default
-          browser instance will be returned
+        browser instance will be returned
         @param browserName: one of the browser names (e.g. FF, Chrome) from GC.BROWSER*
         @param browserAttributes: optional Browser Attributes
         @return: the browser instance of base class BrowserDriver
+
         """
         if browserInstance not in self.browser.keys():
             logger.info(f"opening new instance {browserInstance} of browser {browserName}")
@@ -148,13 +149,14 @@ class TestRun:
         The Sequence of which class instance to create is defined by the TestRunAttributes.
 
         Before instancing the class it is checked, whether the class was loaded already and if not, will be loaded
-            (only if the classname is fully qualified (e.g baangt<projectname>.TestSteps.myTestStep).
+        (only if the classname is fully qualified (e.g baangt<projectname>.TestSteps.myTestStep).
         If the testcase-Status is already "error" (GC.TESTCASESTATUS_ERROR) we'll stop the loop.
 
         @param dictSequenceOfClasses: The list of classes to be instanced. Must be a dict of {Enum, Classname},
-                                      can be also {enum: [classname, <whatEverElse>]}
+        can be also {enum: [classname, <whatEverElse>]}
         @param counterName: Which Structure element we're currently looping, e.g. "TestStep" (GC.STRUCTURE_TESTSTEP)
         @param kwargs: TestrunAttributes, this TestRun, the Timings-Instance, the datarecord
+
         """
         if not kwargs.get(GC.KWARGS_TESTRUNATTRIBUTES):
             kwargs[GC.KWARGS_TESTRUNATTRIBUTES] = self.getAllTestRunAttributes()

+ 3 - 1
baangt/ui/ui.py

@@ -250,7 +250,9 @@ class UI:
         return lPython
 
     def getConfigFilesInDirectory(self):
-        """Reads *.JSON-Files from directory given in self.directory and builds 2 lists (Testrunfiles and ConfiFiles"""
+        """
+        Reads JSON-Files from directory given in self.directory and builds 2 lists (Testrunfiles and ConfiFiles)
+        """
         self.configFiles = []
         self.testRunFiles = []
         lcwd = os.getcwd()

+ 38 - 0
docs/Installation.rst

@@ -0,0 +1,38 @@
+Installation
+============
+
+There are various ways to install and use ``baangt`` depending on your requirements and setup.
+
+Install from sources
+--------------------
+
+Install sources from GIT (Please adjust to your virtual environment as per your preferences
+
+::
+
+    git clone https://gogs.earthsquad.global/athos/baangt
+    cd baangt
+    pip3 install -r requirements.txt
+    python3 baangtIA.py
+
+Docker
+------
+Install from GIT:
+
+::
+
+    git clone https://gogs.earthsquad.global/athos/baangt-Docker
+    cd baangt-Docker
+    Make build
+    Make run
+
+then use your preferred VNC-Client with ``vnc://localhost:5902``. Unless you changed the default password, the
+password is ``password`` .
+
+Install PIP-Package
+------------------------
+If you're planning to implement subclassing you can also use the pip package:
+
+::
+
+    pip install baangt

+ 33 - 2
docs/OverviewUsage.rst

@@ -38,7 +38,7 @@ people who know best what to test: Your business department.
 Hey, why not do everything in Excel?
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-There is one serious drawback from this flexibilty: it's change. Of course you started with 1 sheet, but later had some additional
+There is one serious drawback from this flexibilty: it's **change**. Of course you started with 1 sheet, but later had some additional
 requirements and simply added a second sheet to cover those whithout changing the definitions of the first excel sheet.
 You're still happy as you need both behaviours tested (imagine one test set for regional customers and another test set
 for customers from other countries). Great. Everything works. After having some serious problems in production and fixing
@@ -47,11 +47,42 @@ times, deleting and re-adding objects from a shopping chart, etc.). The basic te
 the other two cases, but for a specific card you'll need changes. Simple. You copy one of the original sheets and adjust
 accordingly. You immediately sleep better because now also those cases are part of your growing regression test set. Wonderful.
 You continue like this for 2 months, end up with 2 or 3 datafiles and 20 test case definitions. That's not uncommon. Also
-not uncommon is "Change". For more direct communication with the endusers the AUT (Application under test) get's enriched
+not uncommon is "**Change**". For more direct communication with the endusers the AUT (Application under test) get's enriched
 with a Sentry-Popup. Wonderful idea. But wait... It's not so great after all, because now you have to update 20 test case
 definitions with a way to deal with the new popup. Imagine corporate environments where we have many 1.000 or many 10.000
 tests.
 
+Subclassing for multiply used functionality
+-------------------------------------------
+
+The existing classes ``baangt.TestCase.TestCaseMaster`` and ``baangt.TestStep.TestStepMaster`` can easily be subclassed
+and enriched with static functionality - even when you use the Excel version of ``baangt.py``. Yes, you'll need to know
+some basics of powerful Python Language and most probably an IDE.
+
+An example could look as simple like this:
+
+::
+
+    from baangt.TestStep import TestStepMaster
+
+    class myTestStep(TestStepMaster):
+        def execute():
+            self.driver.goToURL("http://www.google.com")
+            self.driver.findByAndSetText(xpath='//input[@type="text"]', value='baangt')
+            self.driver.findByAndClick(xpath='(//input[contains(@type,'submit')])[3]')
+
+That's it. All the rest is taken care of by ``baangt``. You'll also receive a nice export file showing timing information
+for your TestCase.
+
+You can subclass any other functionality, that doesn't fully fit your needs (IBAN-Generation, Browser-Handling, Timing)
+and also create your own Assertion-classes (for instance if you need to receive data from a Host-System or
+RFC/SOAP-Connection or any other source that is not natively supported by ``baangt.py``). Of course you'd only
+re-implement methods, that you need to enrich and consume everything else from the framework.
+
+Please consider creating pull-requests if you think some of your custom implemented functionality could be useful for
+others.
+
+
 ``BaangtDB`` for flexible, powerful enterprise grade test automation
 --------------------------------------------------------------------
 

+ 2 - 0
docs/ParametersConfigFile.rst

@@ -15,6 +15,8 @@ for instance to slowly retest a single testrecord or to not close the browser af
      - When set to ``true`` the browser will stop for a short time after each command, so that you can also visually see what the browser is doing
    * - ``dontCloseBrowser``
      - When the browser or script finds an error usually it takes a screenshot and moves on to the next testcase. With this setting to ``True`` the Browsersession will stop right at the error
+   * - ``TC.BrowserOptions``
+     - Set the value to ``{'HEADLESS': 'True'}`` to run Chrome/Firefox in headless mode.
    * - ``TC.Lines``
      - Which lines from datafile to process.
 

BIN
docs/_build/doctrees/Developer.doctree


BIN
docs/_build/doctrees/Installation.doctree


BIN
docs/_build/doctrees/OverviewUsage.doctree


BIN
docs/_build/doctrees/ParametersConfigFile.doctree


BIN
docs/_build/doctrees/contributors.doctree


BIN
docs/_build/doctrees/docs/baangt.base.doctree


BIN
docs/_build/doctrees/docs/baangt.ui.doctree


BIN
docs/_build/doctrees/environment.pickle


BIN
docs/_build/doctrees/index.doctree


File diff suppressed because it is too large
+ 246 - 0
docs/_build/html/Installation.html


+ 31 - 4
docs/_build/html/OverviewUsage.html

@@ -36,7 +36,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Jump-start into worry free production deployments" href="simpleExample.html" />
-    <link rel="prev" title="Welcome to baangt!" href="index.html" /> 
+    <link rel="prev" title="Installation" href="Installation.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
@@ -82,12 +82,14 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">Installation</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#the-fastest-simplest-way-to-record-test-cases">The fastest, simplest way to record test cases</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#still-simple-and-more-powerful-ways">Still simple and more powerful ways:</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="#hey-why-not-do-everything-in-excel">Hey, why not do everything in Excel?</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="#subclassing-for-multiply-used-functionality">Subclassing for multiply used functionality</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#baangtdb-for-flexible-powerful-enterprise-grade-test-automation"><code class="docutils literal notranslate"><span class="pre">BaangtDB</span></code> for flexible, powerful enterprise grade test automation</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#to-sum-it-up">To sum it up</a></li>
 </ul>
@@ -98,6 +100,7 @@
 <li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">Contributions</a></li>
 </ul>
 
             
@@ -193,7 +196,7 @@ the maintenance of data and test sequence can be done without ANY other tools (e
 people who know best what to test: Your business department.</p>
 <div class="section" id="hey-why-not-do-everything-in-excel">
 <h3>Hey, why not do everything in Excel?<a class="headerlink" href="#hey-why-not-do-everything-in-excel" title="Permalink to this headline">¶</a></h3>
-<p>There is one serious drawback from this flexibilty: it’s change. Of course you started with 1 sheet, but later had some additional
+<p>There is one serious drawback from this flexibilty: it’s <strong>change</strong>. Of course you started with 1 sheet, but later had some additional
 requirements and simply added a second sheet to cover those whithout changing the definitions of the first excel sheet.
 You’re still happy as you need both behaviours tested (imagine one test set for regional customers and another test set
 for customers from other countries). Great. Everything works. After having some serious problems in production and fixing
@@ -202,12 +205,36 @@ times, deleting and re-adding objects from a shopping chart, etc.). The basic te
 the other two cases, but for a specific card you’ll need changes. Simple. You copy one of the original sheets and adjust
 accordingly. You immediately sleep better because now also those cases are part of your growing regression test set. Wonderful.
 You continue like this for 2 months, end up with 2 or 3 datafiles and 20 test case definitions. That’s not uncommon. Also
-not uncommon is “Change”. For more direct communication with the endusers the AUT (Application under test) get’s enriched
+not uncommon is “<strong>Change</strong>”. For more direct communication with the endusers the AUT (Application under test) get’s enriched
 with a Sentry-Popup. Wonderful idea. But wait… It’s not so great after all, because now you have to update 20 test case
 definitions with a way to deal with the new popup. Imagine corporate environments where we have many 1.000 or many 10.000
 tests.</p>
 </div>
 </div>
+<div class="section" id="subclassing-for-multiply-used-functionality">
+<h2>Subclassing for multiply used functionality<a class="headerlink" href="#subclassing-for-multiply-used-functionality" title="Permalink to this headline">¶</a></h2>
+<p>The existing classes <code class="docutils literal notranslate"><span class="pre">baangt.TestCase.TestCaseMaster</span></code> and <code class="docutils literal notranslate"><span class="pre">baangt.TestStep.TestStepMaster</span></code> can easily be subclassed
+and enriched with static functionality - even when you use the Excel version of <code class="docutils literal notranslate"><span class="pre">baangt.py</span></code>. Yes, you’ll need to know
+some basics of powerful Python Language and most probably an IDE.</p>
+<p>An example could look as simple like this:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">baangt.TestStep</span> <span class="kn">import</span> <span class="n">TestStepMaster</span>
+
+<span class="k">class</span> <span class="nc">myTestStep</span><span class="p">(</span><span class="n">TestStepMaster</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">execute</span><span class="p">():</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">driver</span><span class="o">.</span><span class="n">goToURL</span><span class="p">(</span><span class="s2">&quot;http://www.google.com&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">driver</span><span class="o">.</span><span class="n">findByAndSetText</span><span class="p">(</span><span class="n">xpath</span><span class="o">=</span><span class="s1">&#39;//input[@type=&quot;text&quot;]&#39;</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="s1">&#39;baangt&#39;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">driver</span><span class="o">.</span><span class="n">findByAndClick</span><span class="p">(</span><span class="n">xpath</span><span class="o">=</span><span class="s1">&#39;(//input[contains(@type,&#39;</span><span class="n">submit</span><span class="s1">&#39;)])[3]&#39;</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>That’s it. All the rest is taken care of by <code class="docutils literal notranslate"><span class="pre">baangt</span></code>. You’ll also receive a nice export file showing timing information
+for your TestCase.</p>
+<p>You can subclass any other functionality, that doesn’t fully fit your needs (IBAN-Generation, Browser-Handling, Timing)
+and also create your own Assertion-classes (for instance if you need to receive data from a Host-System or
+RFC/SOAP-Connection or any other source that is not natively supported by <code class="docutils literal notranslate"><span class="pre">baangt.py</span></code>). Of course you’d only
+re-implement methods, that you need to enrich and consume everything else from the framework.</p>
+<p>Please consider creating pull-requests if you think some of your custom implemented functionality could be useful for
+others.</p>
+</div>
 <div class="section" id="baangtdb-for-flexible-powerful-enterprise-grade-test-automation">
 <h2><code class="docutils literal notranslate"><span class="pre">BaangtDB</span></code> for flexible, powerful enterprise grade test automation<a class="headerlink" href="#baangtdb-for-flexible-powerful-enterprise-grade-test-automation" title="Permalink to this headline">¶</a></h2>
 <p>Enter the next stage: <code class="docutils literal notranslate"><span class="pre">baangtDB</span></code>. <code class="docutils literal notranslate"><span class="pre">baangtDB</span></code> does much more than just replace Excel as input and sequence source. BaangtDB
@@ -265,7 +292,7 @@ comfort for free.</p>
         <a href="simpleExample.html" class="btn btn-neutral float-right" title="Jump-start into worry free production deployments" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="index.html" class="btn btn-neutral float-left" title="Welcome to baangt!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="Installation.html" class="btn btn-neutral float-left" title="Installation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   

+ 8 - 3
docs/_build/html/ParametersConfigFile.html

@@ -82,6 +82,7 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">Installation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
 <li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a></li>
@@ -89,6 +90,7 @@
 <li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">Contributions</a></li>
 </ul>
 
             
@@ -176,7 +178,10 @@ for instance to slowly retest a single testrecord or to not close the browser af
 <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">dontCloseBrowser</span></code></p></td>
 <td><p>When the browser or script finds an error usually it takes a screenshot and moves on to the next testcase. With this setting to <code class="docutils literal notranslate"><span class="pre">True</span></code> the Browsersession will stop right at the error</p></td>
 </tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TC.Lines</span></code></p></td>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TC.BrowserOptions</span></code></p></td>
+<td><p>Set the value to <code class="docutils literal notranslate"><span class="pre">{'HEADLESS':</span> <span class="pre">'True'}</span></code> to run Chrome/Firefox in headless mode.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TC.Lines</span></code></p></td>
 <td><p>Which lines from datafile to process.</p>
 <ul class="simple">
 <li><p><code class="docutils literal notranslate"><span class="pre">linennumber</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">5</span></code>. Will execute the selected testrun using line 5 from the datafile</p></li>
@@ -185,10 +190,10 @@ for instance to slowly retest a single testrecord or to not close the browser af
 <p>Combinations are possible and allowed, in this case separate the numbers by comma e.g. <code class="docutils literal notranslate"><span class="pre">5,</span> <span class="pre">10-20,</span> <span class="pre">30-90</span></code></p>
 </td>
 </tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TC.Browser</span></code></p></td>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TC.Browser</span></code></p></td>
 <td><p>If the testcase is WEB-Testing, then you can overwrite the browser, which is defined inside the testrun definition. If the testcase is not a Web-Testcase this setting doesn’t have any effect. Valid values are <code class="docutils literal notranslate"><span class="pre">Chrome</span></code>, <code class="docutils literal notranslate"><span class="pre">FF</span></code> and <code class="docutils literal notranslate"><span class="pre">Safari</span></code></p></td>
 </tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">TC.ParallelRuns</span></code></p></td>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">TC.ParallelRuns</span></code></p></td>
 <td><p>Number of parallel sessions to be executing. Values depend largely on your hardware and internet connection. Debugging works only in a single session.</p></td>
 </tr>
 </tbody>

BIN
docs/_build/html/_images/screenshotBaangtIA.png


+ 39 - 0
docs/_build/html/_sources/Developer.rst.txt

@@ -0,0 +1,39 @@
+Developer guidelines for custom enhancements
+============================================
+
+``baangt`` is already pretty versatile but from time to time you'll face a requirement, that simply can't be done without
+writing code. But that's not a bad thing - we like writing code after all, don't we?
+
+Subclassing
+---------------------
+
+The main classes and functions should be more than OK for you. You'll just need to implement some central enhancements.
+For instance there's a requirement to check after each Browser-Interaction, whether a specific popup/message appeared.
+Don't be cruel and let the end-users duplicate the locator over and over again in their XLSX.
+
+Instead create a subclass of BrowserDriver
+
+::
+
+    from baangt.base.BrowserDriver import BrowserHandling
+
+    class MyCustomBrowser(BrowserHandling)
+        def findByAndClick(...)
+
+            # Search for the element
+            self.customSearchAndReact()
+
+        def customSearchAndReact():
+            if self.findBy(xpath, "specialThingForThisClient"):
+                self.testdataDict[GC.TESTCASESTATUS] = GC.TESTCASESTATUS_FAILED
+
+That's it. Business people will love you and whenever "specialThingForThisClient" changes, you'll have to adjust only
+in one place.
+
+After subclassing you'll need to replace the standard ``BrowserHandling`` with ``MyCustomBrowser`` in order for baangt
+to use it.
+
+Plugins
+-------
+
+Please make yourself familiar with https://pluggy.readthedocs.io/en/latest/ in order to implement Plugins. If you're stuck let me know.

+ 38 - 0
docs/_build/html/_sources/Installation.rst.txt

@@ -0,0 +1,38 @@
+Installation
+============
+
+There are various ways to install and use ``baangt`` depending on your requirements and setup.
+
+Install from sources
+--------------------
+
+Install sources from GIT (Please adjust to your virtual environment as per your preferences
+
+::
+
+    git clone https://gogs.earthsquad.global/athos/baangt
+    cd baangt
+    pip3 install -r requirements.txt
+    python3 baangtIA.py
+
+Docker
+------
+Install from GIT:
+
+::
+
+    git clone https://gogs.earthsquad.global/athos/baangt-Docker
+    cd baangt-Docker
+    Make build
+    Make run
+
+then use your preferred VNC-Client with ``vnc://localhost:5902``. Unless you changed the default password, the
+password is ``password`` .
+
+Install PIP-Package
+------------------------
+If you're planning to implement subclassing you can also use the pip package:
+
+::
+
+    pip install baangt

+ 33 - 2
docs/_build/html/_sources/OverviewUsage.rst.txt

@@ -38,7 +38,7 @@ people who know best what to test: Your business department.
 Hey, why not do everything in Excel?
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-There is one serious drawback from this flexibilty: it's change. Of course you started with 1 sheet, but later had some additional
+There is one serious drawback from this flexibilty: it's **change**. Of course you started with 1 sheet, but later had some additional
 requirements and simply added a second sheet to cover those whithout changing the definitions of the first excel sheet.
 You're still happy as you need both behaviours tested (imagine one test set for regional customers and another test set
 for customers from other countries). Great. Everything works. After having some serious problems in production and fixing
@@ -47,11 +47,42 @@ times, deleting and re-adding objects from a shopping chart, etc.). The basic te
 the other two cases, but for a specific card you'll need changes. Simple. You copy one of the original sheets and adjust
 accordingly. You immediately sleep better because now also those cases are part of your growing regression test set. Wonderful.
 You continue like this for 2 months, end up with 2 or 3 datafiles and 20 test case definitions. That's not uncommon. Also
-not uncommon is "Change". For more direct communication with the endusers the AUT (Application under test) get's enriched
+not uncommon is "**Change**". For more direct communication with the endusers the AUT (Application under test) get's enriched
 with a Sentry-Popup. Wonderful idea. But wait... It's not so great after all, because now you have to update 20 test case
 definitions with a way to deal with the new popup. Imagine corporate environments where we have many 1.000 or many 10.000
 tests.
 
+Subclassing for multiply used functionality
+-------------------------------------------
+
+The existing classes ``baangt.TestCase.TestCaseMaster`` and ``baangt.TestStep.TestStepMaster`` can easily be subclassed
+and enriched with static functionality - even when you use the Excel version of ``baangt.py``. Yes, you'll need to know
+some basics of powerful Python Language and most probably an IDE.
+
+An example could look as simple like this:
+
+::
+
+    from baangt.TestStep import TestStepMaster
+
+    class myTestStep(TestStepMaster):
+        def execute():
+            self.driver.goToURL("http://www.google.com")
+            self.driver.findByAndSetText(xpath='//input[@type="text"]', value='baangt')
+            self.driver.findByAndClick(xpath='(//input[contains(@type,'submit')])[3]')
+
+That's it. All the rest is taken care of by ``baangt``. You'll also receive a nice export file showing timing information
+for your TestCase.
+
+You can subclass any other functionality, that doesn't fully fit your needs (IBAN-Generation, Browser-Handling, Timing)
+and also create your own Assertion-classes (for instance if you need to receive data from a Host-System or
+RFC/SOAP-Connection or any other source that is not natively supported by ``baangt.py``). Of course you'd only
+re-implement methods, that you need to enrich and consume everything else from the framework.
+
+Please consider creating pull-requests if you think some of your custom implemented functionality could be useful for
+others.
+
+
 ``BaangtDB`` for flexible, powerful enterprise grade test automation
 --------------------------------------------------------------------
 

+ 2 - 0
docs/_build/html/_sources/ParametersConfigFile.rst.txt

@@ -15,6 +15,8 @@ for instance to slowly retest a single testrecord or to not close the browser af
      - When set to ``true`` the browser will stop for a short time after each command, so that you can also visually see what the browser is doing
    * - ``dontCloseBrowser``
      - When the browser or script finds an error usually it takes a screenshot and moves on to the next testcase. With this setting to ``True`` the Browsersession will stop right at the error
+   * - ``TC.BrowserOptions``
+     - Set the value to ``{'HEADLESS': 'True'}`` to run Chrome/Firefox in headless mode.
    * - ``TC.Lines``
      - Which lines from datafile to process.
 

+ 30 - 0
docs/_build/html/_sources/contributors.rst.txt

@@ -0,0 +1,30 @@
+Contributions
+=============
+
+Ways to contribute:
+    * Documentation
+    * Bugfixing
+    * New features
+
+Documentation
+-------------
+
+The documentation of ``baangt`` is written in RST-Format and part of the standard repository. The compiled documentation
+from Sphinx is in the same repository in the branch ``gh-pages``.
+
+    * Make sure you have the latest version checked out in GIT
+    * Create a branch with your name
+    * Create a pull request
+
+Bugfixing
+---------
+
+If you found a bug and want to fix it, please describe the bug in the issue tracker and create a branch with the bug number. Then create a Pull request.
+
+New features
+------------
+
+Before you fork please get in contact and let's discuss, if the new feature you have in mind should go into ``baangt``
+standard functionality.
+
+

+ 12 - 7
docs/_build/html/_sources/index.rst.txt

@@ -10,17 +10,22 @@ highly complex corporate environments: ``baangt`` is the solution. And if it's n
 and well documented master functionality.
 
 
+.. image:: screenshotBaangtIA.png
+
+
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
-   OverviewUsage.rst
-   simpleExample.rst
-   Structure.rst
-   ParametersConfigFile.rst
-   TestTypes.rst
-   Developer.rst
-   HistoryAndReasons.rst
+      Installation <Installation.rst>
+      Overview <OverviewUsage.rst>
+      First Steps <simpleExample.rst>
+      Structure <Structure.rst>
+      Parameters <ParametersConfigFile.rst>
+      Types of Tests <TestTypes.rst>
+      For Developers <Developer.rst>
+      History <HistoryAndReasons.rst>
+      Contributions <contributors.rst>
 
 
 Indices and tables

File diff suppressed because it is too large
+ 1 - 0
docs/_build/html/_static/css/badge_only.css


File diff suppressed because it is too large
+ 6 - 0
docs/_build/html/_static/css/theme.css


BIN
docs/_build/html/_static/file.png


BIN
docs/_build/html/_static/fonts/Inconsolata-Bold.ttf


BIN
docs/_build/html/_static/fonts/Inconsolata-Regular.ttf


BIN
docs/_build/html/_static/fonts/Inconsolata.ttf


BIN
docs/_build/html/_static/fonts/Lato-Bold.ttf


BIN
docs/_build/html/_static/fonts/Lato-Regular.ttf


BIN
docs/_build/html/_static/fonts/Lato/lato-bold.eot


BIN
docs/_build/html/_static/fonts/Lato/lato-bold.ttf


BIN
docs/_build/html/_static/fonts/Lato/lato-bold.woff


BIN
docs/_build/html/_static/fonts/Lato/lato-bold.woff2


BIN
docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot


BIN
docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf


BIN
docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff


BIN
docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2


BIN
docs/_build/html/_static/fonts/Lato/lato-italic.eot


BIN
docs/_build/html/_static/fonts/Lato/lato-italic.ttf


BIN
docs/_build/html/_static/fonts/Lato/lato-italic.woff


BIN
docs/_build/html/_static/fonts/Lato/lato-italic.woff2


BIN
docs/_build/html/_static/fonts/Lato/lato-regular.eot


BIN
docs/_build/html/_static/fonts/Lato/lato-regular.ttf


BIN
docs/_build/html/_static/fonts/Lato/lato-regular.woff


BIN
docs/_build/html/_static/fonts/Lato/lato-regular.woff2


BIN
docs/_build/html/_static/fonts/RobotoSlab-Bold.ttf


BIN
docs/_build/html/_static/fonts/RobotoSlab-Regular.ttf


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff


BIN
docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2


BIN
docs/_build/html/_static/fonts/fontawesome-webfont.eot


File diff suppressed because it is too large
+ 2671 - 0
docs/_build/html/_static/fonts/fontawesome-webfont.svg


BIN
docs/_build/html/_static/fonts/fontawesome-webfont.ttf


BIN
docs/_build/html/_static/fonts/fontawesome-webfont.woff


BIN
docs/_build/html/_static/fonts/fontawesome-webfont.woff2


File diff suppressed because it is too large
+ 4 - 0
docs/_build/html/_static/js/modernizr.min.js


File diff suppressed because it is too large
+ 3 - 0
docs/_build/html/_static/js/theme.js


BIN
docs/_build/html/_static/minus.png


BIN
docs/_build/html/_static/plus.png


+ 11 - 15
docs/_build/html/docs/baangt.base.html

@@ -80,6 +80,7 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../Installation.html">Installation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
 <li class="toctree-l1"><a class="reference internal" href="../simpleExample.html">Jump-start into worry free production deployments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Structure.html">Structure of baangt</a></li>
@@ -87,6 +88,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributors.html">Contributions</a></li>
 </ul>
 
             
@@ -541,16 +543,12 @@ from baangt.py</p>
 <code class="sig-name descname">executeDictSequenceOfClasses</code><span class="sig-paren">(</span><em class="sig-param">dictSequenceOfClasses</em>, <em class="sig-param">counterName</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#baangt.base.TestRun.TestRun.executeDictSequenceOfClasses" title="Permalink to this definition">¶</a></dt>
 <dd><p>This is the main loop of the TestCaseSequence, TestCases, TestStepSequences and TestSteps.
 The Sequence of which class instance to create is defined by the TestRunAttributes.</p>
-<dl class="simple">
-<dt>Before instancing the class it is checked, whether the class was loaded already and if not, will be loaded</dt><dd><p>(only if the classname is fully qualified (e.g baangt&lt;projectname&gt;.TestSteps.myTestStep).</p>
-</dd>
-</dl>
-<p>If the testcase-Status is already “error” (GC.TESTCASESTATUS_ERROR) we’ll stop the loop.</p>
-<dl class="simple">
-<dt>&#64;param dictSequenceOfClasses: The list of classes to be instanced. Must be a dict of {Enum, Classname},</dt><dd><p>can be also {enum: [classname, &lt;whatEverElse&gt;]}</p>
-</dd>
-</dl>
-<p>&#64;param counterName: Which Structure element we’re currently looping, e.g. “TestStep” (GC.STRUCTURE_TESTSTEP)
+<p>Before instancing the class it is checked, whether the class was loaded already and if not, will be loaded
+(only if the classname is fully qualified (e.g baangt&lt;projectname&gt;.TestSteps.myTestStep).
+If the testcase-Status is already “error” (GC.TESTCASESTATUS_ERROR) we’ll stop the loop.</p>
+<p>&#64;param dictSequenceOfClasses: The list of classes to be instanced. Must be a dict of {Enum, Classname},
+can be also {enum: [classname, &lt;whatEverElse&gt;]}
+&#64;param counterName: Which Structure element we’re currently looping, e.g. “TestStep” (GC.STRUCTURE_TESTSTEP)
 &#64;param kwargs: TestrunAttributes, this TestRun, the Timings-Instance, the datarecord</p>
 </dd></dl>
 
@@ -583,11 +581,9 @@ inside the testcase definitions and replace it with value “CHROME”.</p>
 <dd><p>This method is called whenever a browser instance (existing or new) is needed. If called without
 parameters it will create one instance of Firefox (geckodriver).</p>
 <p>if global setting TC.EXECUTION_SLOW is set, inform the browser instance about it.</p>
-<dl class="simple">
-<dt>&#64;param browserInstance: Number of the requested browser instance. If none is provided, always the default</dt><dd><p>browser instance will be returned</p>
-</dd>
-</dl>
-<p>&#64;param browserName: one of the browser names (e.g. FF, Chrome) from GC.BROWSER*
+<p>&#64;param browserInstance: Number of the requested browser instance. If none is provided, always the default
+browser instance will be returned
+&#64;param browserName: one of the browser names (e.g. FF, Chrome) from GC.BROWSER*
 &#64;param browserAttributes: optional Browser Attributes
 &#64;return: the browser instance of base class BrowserDriver</p>
 </dd></dl>

+ 3 - 1
docs/_build/html/docs/baangt.ui.html

@@ -80,6 +80,7 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../Installation.html">Installation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
 <li class="toctree-l1"><a class="reference internal" href="../simpleExample.html">Jump-start into worry free production deployments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Structure.html">Structure of baangt</a></li>
@@ -87,6 +88,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributors.html">Contributions</a></li>
 </ul>
 
             
@@ -245,7 +247,7 @@
 <dl class="method">
 <dt id="baangt.ui.ui.UI.getConfigFilesInDirectory">
 <code class="sig-name descname">getConfigFilesInDirectory</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#baangt.ui.ui.UI.getConfigFilesInDirectory" title="Permalink to this definition">¶</a></dt>
-<dd><p>Reads <a href="#id1"><span class="problematic" id="id2">*</span></a>.JSON-Files from directory given in self.directory and builds 2 lists (Testrunfiles and ConfiFiles</p>
+<dd><p>Reads JSON-Files from directory given in self.directory and builds 2 lists (Testrunfiles and ConfiFiles)</p>
 </dd></dl>
 
 <dl class="method">

+ 2 - 0
docs/_build/html/docs/modules.html

@@ -80,6 +80,7 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../Installation.html">Installation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
 <li class="toctree-l1"><a class="reference internal" href="../simpleExample.html">Jump-start into worry free production deployments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Structure.html">Structure of baangt</a></li>
@@ -87,6 +88,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributors.html">Contributions</a></li>
 </ul>
 
             

+ 2 - 0
docs/_build/html/docs/setup.html

@@ -80,6 +80,7 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../Installation.html">Installation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
 <li class="toctree-l1"><a class="reference internal" href="../simpleExample.html">Jump-start into worry free production deployments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Structure.html">Structure of baangt</a></li>
@@ -87,6 +88,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../TestTypes.html">Types of tests</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../Developer.html">Developer guidelines for custom enhancements</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributors.html">Contributions</a></li>
 </ul>
 
             

+ 9 - 7
docs/_build/html/genindex.html

@@ -81,13 +81,15 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
-<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">Parameters in Configuration files (<code class="docutils literal notranslate"><span class="pre">globals</span></code>)</a></li>
-<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
-<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">   Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">   Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">   First Steps</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Structure.html">   Structure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">   Parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">   Types of Tests</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Developer.html">   For Developers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">   History</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">   Contributions</a></li>
 </ul>
 
             

+ 32 - 16
docs/_build/html/index.html

@@ -35,7 +35,7 @@
   <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="What is baangt" href="OverviewUsage.html" /> 
+    <link rel="next" title="Installation" href="Installation.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
@@ -81,13 +81,15 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
-<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">Parameters in Configuration files (<code class="docutils literal notranslate"><span class="pre">globals</span></code>)</a></li>
-<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
-<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">   Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">   Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">   First Steps</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Structure.html">   Structure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">   Parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">   Types of Tests</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Developer.html">   For Developers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">   History</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">   Contributions</a></li>
 </ul>
 
             
@@ -157,22 +159,30 @@
 <p><code class="docutils literal notranslate"><span class="pre">baangt</span></code> is the new, open source test suite, that grows along with your requirements. From simple recoding based automation to
 highly complex corporate environments: <code class="docutils literal notranslate"><span class="pre">baangt</span></code> is the solution. And if it’s not, it should be very easy to extend the solid
 and well documented master functionality.</p>
+<img alt="_images/screenshotBaangtIA.png" src="_images/screenshotBaangtIA.png" />
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a><ul>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">   Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#install-from-sources">Install from sources</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#docker">Docker</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Installation.html#install-pip-package">Install PIP-Package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">   Overview</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="OverviewUsage.html#the-fastest-simplest-way-to-record-test-cases">The fastest, simplest way to record test cases</a></li>
 <li class="toctree-l2"><a class="reference internal" href="OverviewUsage.html#still-simple-and-more-powerful-ways">Still simple and more powerful ways:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="OverviewUsage.html#subclassing-for-multiply-used-functionality">Subclassing for multiply used functionality</a></li>
 <li class="toctree-l2"><a class="reference internal" href="OverviewUsage.html#baangtdb-for-flexible-powerful-enterprise-grade-test-automation"><code class="docutils literal notranslate"><span class="pre">BaangtDB</span></code> for flexible, powerful enterprise grade test automation</a></li>
 <li class="toctree-l2"><a class="reference internal" href="OverviewUsage.html#to-sum-it-up">To sum it up</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">   First Steps</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="simpleExample.html#prerequisits">Prerequisits</a></li>
 <li class="toctree-l2"><a class="reference internal" href="simpleExample.html#let-s-dive-right-into-it">Let’s dive right into it</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="Structure.html">   Structure</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Structure.html#teststep">TestStep</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Structure.html#teststepsequence">TestStepSequence</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Structure.html#testcase">TestCase</a></li>
@@ -180,8 +190,8 @@ and well documented master functionality.</p>
 <li class="toctree-l2"><a class="reference internal" href="Structure.html#testrun">TestRun</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">Parameters in Configuration files (<code class="docutils literal notranslate"><span class="pre">globals</span></code>)</a></li>
-<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">   Parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">   Types of Tests</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="TestTypes.html#increment-testing">Increment testing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="TestTypes.html#heartbeat-and-alive-testing">Heartbeat and Alive-Testing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="TestTypes.html#regression-testing">Regression testing</a></li>
@@ -189,16 +199,22 @@ and well documented master functionality.</p>
 <li class="toctree-l2"><a class="reference internal" href="TestTypes.html#no-oversimplification">No oversimplification</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="Developer.html">   For Developers</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="Developer.html#subclassing">Subclassing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="Developer.html#plugins">Plugins</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">   History</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="HistoryAndReasons.html#why-open-source">Why open source?</a></li>
 <li class="toctree-l2"><a class="reference internal" href="HistoryAndReasons.html#built-on-the-shoulders-of-giants">Built on the shoulders of giants</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">   Contributions</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="contributors.html#documentation">Documentation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="contributors.html#bugfixing">Bugfixing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="contributors.html#new-features">New features</a></li>
+</ul>
+</li>
 </ul>
 </div>
 </div>
@@ -219,7 +235,7 @@ and well documented master functionality.</p>
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="OverviewUsage.html" class="btn btn-neutral float-right" title="What is baangt" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="Installation.html" class="btn btn-neutral float-right" title="Installation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
     </div>

BIN
docs/_build/html/objects.inv


+ 9 - 7
docs/_build/html/py-modindex.html

@@ -83,13 +83,15 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
-<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">Parameters in Configuration files (<code class="docutils literal notranslate"><span class="pre">globals</span></code>)</a></li>
-<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
-<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">   Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">   Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">   First Steps</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Structure.html">   Structure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">   Parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">   Types of Tests</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Developer.html">   For Developers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">   History</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">   Contributions</a></li>
 </ul>
 
             

+ 9 - 7
docs/_build/html/search.html

@@ -81,13 +81,15 @@
             
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></a></li>
-<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">Jump-start into worry free production deployments</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Structure.html">Structure of baangt</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">Parameters in Configuration files (<code class="docutils literal notranslate"><span class="pre">globals</span></code>)</a></li>
-<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">Types of tests</a></li>
-<li class="toctree-l1"><a class="reference internal" href="Developer.html">Developer guidelines for custom enhancements</a></li>
-<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">Why <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and why is it open source?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Installation.html">   Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="OverviewUsage.html">   Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="simpleExample.html">   First Steps</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Structure.html">   Structure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ParametersConfigFile.html">   Parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" href="TestTypes.html">   Types of Tests</a></li>
+<li class="toctree-l1"><a class="reference internal" href="Developer.html">   For Developers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="HistoryAndReasons.html">   History</a></li>
+<li class="toctree-l1"><a class="reference internal" href="contributors.html">   Contributions</a></li>
 </ul>
 
             

File diff suppressed because it is too large
+ 1 - 1
docs/_build/html/searchindex.js


BIN
docs/_static/file.png


BIN
docs/_static/minus.png


BIN
docs/_static/plus.png


+ 12 - 8
docs/index.rst

@@ -10,18 +10,22 @@ highly complex corporate environments: ``baangt`` is the solution. And if it's n
 and well documented master functionality.
 
 
+.. image:: screenshotBaangtIA.png
+
+
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
-   OverviewUsage.rst
-   simpleExample.rst
-   Structure.rst
-   ParametersConfigFile.rst
-   TestTypes.rst
-   Developer.rst
-   HistoryAndReasons.rst
-   contributors.rst
+      Installation <Installation.rst>
+      Overview <OverviewUsage.rst>
+      First Steps <simpleExample.rst>
+      Structure <Structure.rst>
+      Parameters <ParametersConfigFile.rst>
+      Types of Tests <TestTypes.rst>
+      For Developers <Developer.rst>
+      History <HistoryAndReasons.rst>
+      Contributions <contributors.rst>
 
 
 Indices and tables

BIN
docs/screenshotBaangtIA.png


BIN
docs/testrun.db