An Application Designer application usually consists of layout pages, corresponding Java or Natural adapters and additional server-side Java or Natural implementation. For testing the server-side implementations that are not related to a user interface, good test coverage can be achieved, for example, with JUnit tests. To achieve reasonable test coverage for the whole application, however, automated tests for the parts which relate to the user interface are also required.
For testing web applications, tools such as Selenium (see http://docs.seleniumhq.org/) are available. In automated tests, the test cases have to locate different elements in an HTML page. The tests usually use identifiers in order to locate the elements for testing. When an Application Designer layout page is published, the identifiers are automatically generated in the corresponding HTML page using continuous numbering. However, identifiers which are based on continuous numbers are not suitable for automated tests. Even a small change such as rearranging fields or adding an additional field will change the corresponding number and break the test. Therefore, it is more suitable to use stable identifiers in the test cases. With stable identifiers, the tests will still run correctly when small changes have been applied to the layout.
With Application Designer, you can add stable identifiers (test tool IDs) to the
controls. In the Layout Painter, the Miscellaneous tab of the
properties area contains the testtoolid
property.
The value for this property can be chosen freely. It is not used within the
Application Designer framework.
The value of the testtoolid
is
generated into the corresponding generated HTML page and the element can thus
be located by the test program in a stable way.
The following shows an extract from the generated HTML. You can see
the difference between the unstable id
value and
the stable testtoolid
value. When the field is
rearranged on the page, the id
value will change.
The testtoolid
value, however, will stay the
same.
<input id="F_28" name="CC" class='FIELDInputEdit' testtoolid='mytestid' type="text" size='15' style=" ">
With the tool Selenium, for instance, you can locate the FIELD
control using a corresponding XPATH expression which contains the
testtoolid
value. This XPATH will still be valid
even if you add fields to the layout.