---
# System prepended metadata

title: API Guide - testExec
tags: [Guide, API]

---

## Methods that TBot can call in getTestInput().
For query and control the app under test and system under test from inside the TBot execution.

==path=API.testExec==

## Description
group API for test action execution.

## Group Methods
1. **checkIfOutOfAppOK**, path=API.testExec.checkIfOutOfAppOK
    * Description: tells if TestDragon is checking whether the app under test runs in the foreground.
    * Return Value: True if TestDragon does not check whether the app under test is still in the foreground. False otherwise.
2. **adviseOutOfAppOK**, path=API.testExec.adviseOutOfAppOK
    * Description: suggests TestDragon do not check whether the app under test runs in the foreground from now on.
3. **resumeOutOfAppCheck**, path=API.testExec.resumeOutOfAppCheck
    * Description: suggests TestDragon checking whether the app under test runs in the foreground from now on.
4. **replayTrace**, path=API.testExec.replayTrace
    * Description: execute a registered trace. Note that this method does not execute the trace. It only return a list that can be used as the     * Return Value of a test robot's getTestInput() method.
    * Arguments:
        1. *t* : a registered trace that you can set from via GUI menubar or API
    * Return Value: the return report of TBot Replay executing trace t.
5. **getRandomActionIndex**, path=API.testExec.getRandomActionIndex
    * Description: get a random actionable element index. You can directly use this a     * Return Value of getTestInput() in case it is the index of an action without     * Arguments.
    * Arguments:
        1. *ProportionScreenAction* : a fractional in [0,1] for probability of screen actionables in all actions.
    * Return Value: a random action index in the legal action list.
6. **getRandomAction**, path=API.testExec.getRandomAction
    * Description: get a random actionable element.
    * Arguments:
        1. *ProportionScreenAction* : probability of screen actionables in all actions.
    * Return Value: a dict of a random action.
7. **getBestCoverageAction**, path=API.testExec.getBestCoverageAction
    * Description: getBestCoverageAction
    * Return Value: action that may result in the best action coverage. The     * Return Value can directly be used as     * Return Value of getTestInput() in a TBot. If somehow the coverage information is missing, then None is returned.
8. **getFormFill**, path=API.testExec.getFormFill
    * Description: return a form filling suggestions from the submit button action.
    * Arguments:
        1. *action* : the python dict of a submit button action in the dom of the current screen state. If it is an integer, then it is interpreted as the submit button action index of a form. If it is a form topic, then the inTOL mega test robot will use this to search for a submit button of an appropriate form in the dom of the current screen state.
    * Return Values form a list.
        1. The 1st element is an integer for the submitForm action index in legalActionList
        2. The 2nd element is a dict for data filling to the form whose submit action is specified by the argument.
9. **getFormFillAsPostRequest**, path=API.testExec.getFormFillAsPostRequest
    * Description: return a post request command form filling suggestions from the submit button action.
    * Arguments:
        1. *action* : the python dict of a submit button action in the dom of the current screen state. If it is an integer, then it is interpreted as the submit button action index of a form. If it is a form topic, then the inTOL mega test robot will use this to search for a submit button of an appropriate form in the dom of the current screen state.
    * Return Values form a list.
        1. The 1st element is a url for the post request
        2. The 2nd element is a dict for the post parameter.
10. **getLoginSuggestions**, path=API.testExec.getLoginSuggestions
    * Description: check if already logged in and return actions to login if not logged in yet.
    * Return Values form a list.
        1. The 1st element is an integer for a test action to login or a string in ["already logged in!", "login trials failed!"]
        2. The 2nd element is a dict for login account id and password if a matching test data card is found!