123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- <!DOCTYPE html>
- <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
- <head>
- <meta charset="utf-8">
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <title>What is baangt — baangt 2020.1.1.b11 documentation</title>
-
-
-
-
-
-
- <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
-
-
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <script type="text/javascript" src="_static/language_data.js"></script>
-
- <script type="text/javascript" src="_static/js/theme.js"></script>
-
-
- <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
- <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="Jump-start into worry free production deployments" href="simpleExample.html" />
- <link rel="prev" title="Installation" href="Installation.html" />
- </head>
- <body class="wy-body-for-nav">
-
- <div class="wy-grid-for-nav">
-
- <nav data-toggle="wy-nav-shift" class="wy-nav-side">
- <div class="wy-side-scroll">
- <div class="wy-side-nav-search" >
-
-
- <a href="index.html" class="icon icon-home"> baangt
-
-
- </a>
-
-
-
-
-
- <div role="search">
- <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
- <input type="text" name="q" placeholder="Search docs" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- </div>
-
- </div>
- <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-
-
-
-
-
-
- <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>
- </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="contributors.html">Contributions</a></li>
- </ul>
-
-
- </div>
- </div>
- </nav>
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
- <nav class="wy-nav-top" aria-label="top navigation">
-
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="index.html">baangt</a>
-
- </nav>
- <div class="wy-nav-content">
-
- <div class="rst-content">
-
-
- <div role="navigation" aria-label="breadcrumbs navigation">
- <ul class="wy-breadcrumbs">
-
- <li><a href="index.html">Docs</a> »</li>
-
- <li>What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code></li>
-
-
- <li class="wy-breadcrumbs-aside">
-
-
- <a href="_sources/OverviewUsage.rst.txt" rel="nofollow"> View page source</a>
-
-
- </li>
-
- </ul>
-
- <hr/>
- </div>
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
- <div itemprop="articleBody">
-
- <div class="section" id="what-is-baangt">
- <h1>What is <code class="docutils literal notranslate"><span class="pre">baangt</span></code><a class="headerlink" href="#what-is-baangt" title="Permalink to this headline">¶</a></h1>
- <p>Testing software has always been a challenging field and it’s not getting easier or simpler as overall complexity in corporate
- and other applications skyrockets. Release cycles in larger corporations are often long because of inefficient regression
- tests. Also costs of software updates, upgrades and forward development is heavily impacted by too little test coverage.</p>
- <p><strong>To stop praying when you release to production you need to start serious testing!</strong></p>
- <p>With <code class="docutils literal notranslate"><span class="pre">baangt</span></code> you’ve one <em>open source</em> solution for all your test stages and needs. Be it Frontend with Webbrowser, API,
- graphQL, SOAP, oData or chromium related App-Tests. You’ll use one toolset, one database per stage and one reporting to
- see at any given moment, how your stages and applications are doing and if it’s safe to release the current state of one
- stage to the next.</p>
- <blockquote>
- <div><p><code class="docutils literal notranslate"><span class="pre">baangt</span></code> is optimized to be super easy to start and flexible when your demand grows.</p>
- </div></blockquote>
- <div class="section" id="the-fastest-simplest-way-to-record-test-cases">
- <h2>The fastest, simplest way to record test cases<a class="headerlink" href="#the-fastest-simplest-way-to-record-test-cases" title="Permalink to this headline">¶</a></h2>
- <p>If your requirements are pretty basic you’d start using <code class="docutils literal notranslate"><span class="pre">baangt</span></code> with a simple Excel-Sheet as source of Testcase definition and
- Testdata definition. This is super fast, very easy even for endusers but has limited flexibility, even though it comes packed
- with all features of the higher end solutions like reporting, fault tolerance, screenshots in case of errors and much more.</p>
- </div>
- <div class="section" id="still-simple-and-more-powerful-ways">
- <h2>Still simple and more powerful ways:<a class="headerlink" href="#still-simple-and-more-powerful-ways" title="Permalink to this headline">¶</a></h2>
- <p>As your requirements grow you’d have Testcase and testrun definition separately (e.g. you want to execute the same
- test cases on different stages of your system landscape (Pre-Quality, Final-Quality, Dev) and not for every heartbeat test
- you’d want to run through your 1000s of test data. Maybe you’ll have a SQL-Query in your Excel based data, which changes
- data records dynamically or per stage or per version, that you want to test for. Things are not so simple in this stage,
- but still simple enough for technically versed business department to run high quality tests on all stages by themselves.
- Even after the point, where you need technicians to integrate baangt with your CD/CI-Pipeline`s buildmanagement tools,
- the maintenance of data and test sequence can be done without ANY other tools (except Excel or OpenOffice) easily by the
- 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 <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
- those defects you decide to write a testcase to mimic a certain user behaviour (e.g. navigating back and forth multiple
- times, deleting and re-adding objects from a shopping chart, etc.). The basic test sequence would be still the same as in
- 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 “<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">"http://www.google.com"</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">'//input[@type="text"]'</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="s1">'baangt'</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">'(//input[contains(@type,'</span><span class="n">submit</span><span class="s1">')])[3]'</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
- provides modularization of your test cases. In the above example you’d maintain the Sentry-Popup exactly ONCE for all your
- test cases, where it applies.</p>
- <p>Also if you’re in a really large corporate environment, you’ll start facing problems with the XLS-Based solution as corporate
- governance, compliance, regulations and so on will sooner or later make it difficult to use the software in this way. Also
- even if you use <code class="docutils literal notranslate"><span class="pre">git</span></code> you experience problems with different versions of the Excel-Sheets - depending on your setup of course.</p>
- <p>But still no need invest into expensive, licensed, closed source, proprietary solutions and depend on their good will.
- Run <code class="docutils literal notranslate"><span class="pre">baangtDB</span></code> (for testdata and testcase sequences) in a docker container on premises or in Cloud and have the full flexibility plus
- comfort for free.</p>
- </div>
- <div class="section" id="to-sum-it-up">
- <h2>To sum it up<a class="headerlink" href="#to-sum-it-up" title="Permalink to this headline">¶</a></h2>
- <p>There are multiple ways to use the open source testing framework <code class="docutils literal notranslate"><span class="pre">baangt</span></code>. Each with it’s up- and downsides.</p>
- <table class="colwidths-given docutils align-default" id="id1">
- <caption><span class="caption-text">Possibilities to use <code class="docutils literal notranslate"><span class="pre">baangt</span></code></span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
- <colgroup>
- <col style="width: 100%" />
- </colgroup>
- <tbody>
- <tr class="row-odd"><td><p><strong>XLSX-Simple format</strong></p></td>
- </tr>
- <tr class="row-even"><td><p>to get you started the single Excel-Sheet holds test sequence and data. Fully functional, full reporting on test execution.</p></td>
- </tr>
- <tr class="row-odd"><td><p><strong>XLSX-full format</strong></p></td>
- </tr>
- <tr class="row-even"><td><p>XLSX format: more comples test run, test sequence, test case, test steps as part of testcase definition file. Separate data file.</p></td>
- </tr>
- <tr class="row-odd"><td><p><strong>baangtDB</strong></p></td>
- </tr>
- <tr class="row-even"><td><p>Complexity of XLSX-Format, but simpler maintenance in corporate environments. More and better ways to structure and reuse testcase sequences.</p></td>
- </tr>
- <tr class="row-odd"><td><p><strong>Cloud</strong></p></td>
- </tr>
- <tr class="row-even"><td><p>Same as database</p></td>
- </tr>
- <tr class="row-odd"><td><p><strong>Hosted</strong></p></td>
- </tr>
- <tr class="row-even"><td><p>Same as database</p></td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
-
- </div>
- <footer>
-
- <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-
- <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="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>
-
- <hr/>
- <div role="contentinfo">
- <p>
- © Copyright 2020, Bernhard Buhl
- </p>
- </div>
- Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
- </footer>
- </div>
- </div>
- </section>
- </div>
-
- <script type="text/javascript">
- jQuery(function () {
- SphinxRtdTheme.Navigation.enable(true);
- });
- </script>
-
-
-
-
- </body>
- </html>
|