| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>2.1. The general idea</title> |
| <link rel="stylesheet" type="text/css" href="../../css/style.css"> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> |
| <link rel="home" href="../index.html" title="Jubula Developer Manual"> |
| <link rel="up" href="clientAPI.html" title="Chapter 2. Writing UI tests via API"> |
| <link rel="prev" href="clientAPI.html" title="Chapter 2. Writing UI tests via API"> |
| <link rel="next" href="ch02s02.html" title="2.2. General steps to take and class overview"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <div class="navheader"> |
| <table width="100%" summary="Navigation header"> |
| <tr><th colspan="3" align="center">2.1. The general idea</th></tr> |
| <tr> |
| <td width="20%" align="left"> |
| <a accesskey="p" href="clientAPI.html">Prev</a> </td> |
| <th width="60%" align="center">Chapter 2. Writing UI tests via API</th> |
| <td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a> |
| </td> |
| </tr> |
| </table> |
| <hr> |
| </div> |
| <div xmlns:d="http://docbook.org/ns/docbook" class="breadcrumbs"> |
| <span class="breadcrumb-link"><a href="../index.html">Jubula Developer Manual</a></span> > <span class="breadcrumb-link"><a href="clientAPI.html">Writing UI tests via API</a></span> > <span class="breadcrumb-node">The general idea</span> |
| </div> |
| <div class="section"> |
| <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
| <a name="id294369"></a>2.1. The general idea</h2></div></div></div> |
| <div class="figure"> |
| <a name="api-idea"></a><div class="figure-contents"><div class="mediaobject"><img xmlns:d="http://docbook.org/ns/docbook" src="../images/api-idea.png"></div></div> |
| <div class="figure-title">Figure 2.1. Idea behind the API</div> |
| </div> |
| <br class="figure-break"><p> |
| The main idea behind Jubula's client API is to allow the execution of |
| Test Steps (CAPs) from within arbitrary Java code e.g. JUnit test cases |
| (see <a class="xref" href="ch02s01.html#api-idea" title="Figure 2.1. Idea behind the API">Figure 2.1, “Idea behind the API”</a>). At the same time of shifting the paradigm to target a developer |
| audience we've tried to stick to our principles: |
| </p> |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem"><p>offer high-level test steps that are equivalent to the ones |
| available in the ITE: all test steps that are being executed via |
| the API behave 1:1 the same as the ones executed by the ITE. |
| </p></li> |
| <li class="listitem"><p>an API for all toolkits: the client API is available for all |
| toolkits supported by the ITE like JavaFX, AWT/Swing, |
| SWT/RCP/GEF, iOS, HTML, Win and WinApps. |
| </p></li> |
| <li class="listitem"><p> |
| offer toolkit abstraction layer to keep your tests UI toolkit |
| independent: the usage of the API will also allow you to specify |
| your tests in a toolkit neutral way. Please note that for all of |
| the concrete toolkit wrapper types abstracted super types are |
| provided e.g. to address a |
| <span class="emphasis"><em>javafx.scene.control.CheckBox</em></span> |
| we provide the wrapper type containing its test steps |
| <span class="emphasis"><em>org.eclipse.jubula.toolkit.javafx.components.CheckBox |
| </em></span> |
| but the underlying abstracted toolkit conceptual component is |
| <span class="emphasis"><em>org.eclipse.jubula.toolkit.concrete.components.ButtonComponent |
| </em></span> |
| . |
| </p></li> |
| <li class="listitem"><p>de-couple tests and real UI widgets: you still have to create |
| an object mapping (via the ITE and export it) to keep the |
| information that are required to determine which widget to address |
| during runtime independent from your test specification. |
| </p></li> |
| <li class="listitem"><p>separation of test and AUT runtime environments: the JVM |
| executing the tests is a separate one (and may also e.g. run on |
| a different machine) from the one the AUT gets executed in. It's |
| communicating with the AUT VM via a TCP/IP connection. |
| </p></li> |
| <li class="listitem"><p>the AUT-Agent manages the lifecycle of AUTs: starting / |
| stopping / restarting of AUTs is still done by instructing the |
| AUT-Agent to do so and may also be extended by the usage of |
| autrun to launch applications externally. |
| </p></li> |
| </ul></div> |
| </div> |
| <br xmlns:d="http://docbook.org/ns/docbook"><hr xmlns:d="http://docbook.org/ns/docbook"> |
| <address xmlns:d="http://docbook.org/ns/docbook">Copyright BREDEX GmbH 2015. Made available under the Eclipse Public License v1.0.</address> |
| <br xmlns:d="http://docbook.org/ns/docbook"> |
| </body> |
| </html> |