IDE & Navigation
Properties & Tools
Selenium requires that browser used for testing the AUT must have zoom set to 100%. Having browser not set at 100% when running model to test AUT will cause Selenium to abort. You can check if this is the case by looking at the Server log file and if you see the following error then you just need to reset your browser zoom back to 100%:
Error Unexpected error launching Internet Explorer. Browser zoom level was set to 107%. It should be set to 100%
On Internet Explorer, you can change the browser zoom level with browser menu “View / Zoom”.
If you are experiencing IE9 browser crashing when you try to open a model. This is a known problem with IE9. There are certain settings in the internet options for IE9 that causes IE9 crashing. We are working to understand what settings or combinations of setting are causing the problem.
To get around this problem, do the reset operation as described below:
Additionally you may try disabling add-ons you have installed as the crashing is often times caused by the add-ons and once the offending add-on is disabled or removed, you gain the stability back.
It's quite often that the failures (defects) only occur in certain conditions. Therefore just logging the failure and which state/transition the failure occurs is insufficient. Unless the defect can be reproduced, developer would not be able to fix it, nor can QA verify if the fix actually works. So, knowing how it got to the state/transition where failure occurs is an important part of the defect resolution.
mScript $trace('n') is created just for this purpose. It writes state/transition traversals leading to the current state/transition. If you place $trace('n') call in the mScript where the failure is detected, you would know exactly the exact path for reproducing the failure.
An alternative place to place $trace('n') is in onException or onError MScript triggers. This way, any failure or error will automatically trigger the call to $trace('n'). But be aware that this may generate large amount of trace if you have a lot of failures during the execution.
TestOptimal uses the proven mathematical model and optimization algorithms to generate the test sequences. It is required that all states are from the initial state. If this condition is not met, you will get the No Solution error when you try to execute the model. This is usually caused by missing transitions. This does not affect Random sequencers.
To fix this error, first you need to identify what states are not reachable and you can find this in the error message displayed or TestOptimal Server Log file.
Next, you can examine those states that are not reachable on the graph and you should be able to determine the transitions that are missing or need to be added to connect those un-reachable states.
Once you have identified the missing transition, add it to the model and try to execute the model again.
You can assign an exception level to each of the <assert> tag. When the assert failed, the failure message will be shown under the specific exception level on “Stats” tab page.
To assign the exception level to <assert>, just prefix the “else” message with the exception level followed by colon, see example below:
<assert value1="$getText('firstName')" op="ne" value2="" else="L2: firstName missing value"/>
The above examples assigns exception level L2 to the failure message “firstName missing value”.
You can assing exception levels L1, L2, L3, L4, and L5. Please note only Enterprise Edition supports L1 - L5 while all other editions only supports L1, L2 and L3.
Exception level L1 is the default exception level. Many of the system generated exceptions are assigned L1.
If you have to construct a string to be used as an input to some mScript methods, you can do so easily by just putting the pieces of the sub strings together. TestOptimal uses the token replacement technique, so you don't need to call any concatenate function.
The following example shows how to combine the first name and last name together in the format of “lastName, firstName” and print it to the mScript log file:
<log msg="$getText('lastName'), $getText('firstName')"/>
Selenium supports several ways to locate an element (object) on your web page.
You may find that it performs faster or slower when you switch the locator to find the same element on the page. What we've found is that using id= is the fastest way to find an element on the page. xpath= seems to perform reasonably fast.
But watch out for name= locator. We've found that using name= locator performs several times slower than other locator types. The reason is that there could be more than one elements with the same name and thus the driver must loops through all elements on the page to find all elements with the matching elements.
If you are getting sporadic failures on some of the transitions, this is probably due to the timing.
The workaround is to slow down the testing by adding milliseconds delay to the model in “model” property if the sporadic faiulres occur on many difference transitions in the model, or by adding delay on the specific transitions in transition's property.
Make sure your java .class file is loaded into TestOptimal/script/ folder. If you are using java packages, make sure .jar files are copied to TestOptimal/www/jar/ folder.
where x is amount to scroll horizontally and y is amount to scroll vertically. Use positive number for scrolling down / right and negative number for scrolling up / left.
Alternatively you may use MScript function $sendKey() to send [KEYS.PAGE_UP] / [KEYS.PAGE_DOWN] keyboard event directly to the web page:
As a last resort you may use MScript function $sendKey() in WinUIA and SikuliX (beta) plugins to send [KEYS.PAGE_UP] / [KEYS.PAGE_DOWN] keyboard action. Be aware that this approach requires that AUT page has the focus just like as if you physically press the keys.
This is a default print behavior on Windows print driver: not to print the background color.
You can change this behavior by checking the checkbox “Print Background (colors & images) as shown Windows Print Dialog.
You can push models you have built to all Runtime Servers for execution controlled by your Continuous Integration testing.
Your Runtime Servers require float license and must be registered to SvrMgr.