Share this page

# Run API Tests (Windows only)

In addition to using OpenText Functional Testing for Developers to test your application's user interface, you can also run an OpenText Functional Testing API test as part of your test. This enables you to test your application's service layer with the UI layer in a fully unified test of your application.

The results from the OpenText Functional Testing API test are included as part of your OpenText Functional Testing for Developers test results.

Note: It is not necessary to have OpenText Functional Testing installed on your computer to run OpenText Functional Testing API tests.

In this topic:

## Prerequisites

Before running OpenText Functional Testing API tests in OpenText Functional Testing for Developers, you must:

- Save and run the test in OpenText Functional Testing at least once.
- If you installed OpenText Functional Testing for Developers as part of OpenText Functional Testing, enable HTML Report in OpenText Functional Testing. For more details, see Set run result reporting options.
- Install the Microsoft Access Database Engine 2016 if you are running an API test using Excel data sources.

- Add the appropriate `using` or `import` statements:

  - `using HP.LFT.SDK.APITesting.UFT`
  - `import com.hp.lft.sdk.apitesting.uft.APITestResult;`
    `import com.hp.lft.sdk.apitesting.uft.APITestRunner;`

## Run tests

To access and run API tests, use the APITestRunner.Run method:

In C#

    APITestRunner.Run(@"C:\Users\default\Documents\Unified Functional Testing\APITest1");

In Java

    APITestRunner.run("C:\\Users\default\\Documents\\Unified Functional Testing\\APITest1");

In the Run method arguments, you can also pass input parameters for the API test as shown below.

This method returns an APITestResult object containing the results of the test - both the status of the test run and the test output parameters (if relevant).

The results for the API test run are displayed in the OpenText Functional Testing for Developers report, with a link to open the results of the entire OpenText Functional Testing API test. These results can also be found in the test's results folder (RunResults/ApiTestReport).

For more details on these classes and methods, see the .NET SDK Reference or Java SDK Reference.

Back to top

## Use the results of the API test run in other steps

In C#

    var result = APITestRunner.Run(@"C:\API Tests\APITest1", inParams);
                var outParams = result.OutParams;
                var status = result.Status;

In Java

    APITestResult result = APITestRunner.run("C:\\API Tests\\APITest1", inParams);
    	outParams = result.getOutParams();
    	boolean status = result.getStatus();

Back to top

## Assign values for the input parameters of your API test

While each input parameter for your API test contains a default value (as set in OpenText Functional Testing), you can set the values to use for the input parameters as an argument of the APITestRunner.Run method.

Note: If you define the parameters manually, you must define values for all input parameters in the API test (even if the test has default values for the parameters).

In C#

    var inParams = new Dictionary<string, object>
                {
                    {"FirstParam", "c"},
                    {"SecondParam", "d"}
                };

                var result = APITestRunner.Run(@"C:\API Tests\APITest1", inParams);

In Java

    Map<String, Object> inParams = new HashMap<String, Object>();
    	inParams.put("FirstParam", "c");
    	inParams.put("SecondParam", "d");

    	APITestResult result = APITestRunner.run("C:\\API Tests\\APITest1", inParams);

Back to top

## Select a specific profile for your API test

In OpenText Functional Testing, you can specify multiple profiles for each API test. You can select one of these profiles to use as an argument of the APITestRunner.Run method:

In C#

    APITestRunner.Run(@"C:\API Tests\APITest1", "Profile1");

In Java

    APITestRunner.run("C:\\API Tests\\APITest1", "Profile1");

Back to top

## Pass the value of your test's output parameters to other steps

If you add an output parameter to your API test, the value of this parameter is available with the APITestResult class in OpenText Functional Testing for Developers. The APITestResult class returns this value and you can assign for use in other parts of the test:

## In C#

            [Test]
            public void FTDTestWithApi()
            {

                IBrowser browser;
                IEditField name;
                //Describe and instantiate the test objects
                browser = BrowserFactory.Launch(BrowserType.Chrome);
                name = browser.Describe<IEditField>(new EditFieldDescription { TagName = "INPUT", Name = "WebEdit", Type = "text" });

                //Start the test - navigate to the relevant page
                browser.Navigate("http://mystore.net:3000/#/store");

                //Run API test and verify the test passed successfully
                var result = APITestRunner.Run(TestsPath);
                Verify.AreEqual(true, result.Status, "The status of the APITestResult wasn't right");

                //Save the API test result into a variable
                var text = result.OutParams["OutPutParam1"];

                //Use this variable in the test - set the value in an edit field
               name.SetValue(text);

                //Validate the value in the edit field is as expected
                Verify.AreEqual(name.Value, "John doe");

            }

Java

    @Test
    public void FTDTestWithApi() throws GeneralLeanFtException {

         Browser browser;
         EditField name;

         //Describe and instantiate the test objects
         browser = BrowserFactory.launch(BrowserType.CHROME);
         name = browser.describe(EditField.class, new EditFieldDescription.Builder().tagName("INPUT").name("WebEdit").type("text").build());

         //Start the test - navigate to the relevant page
         browser.navigate("http://mystore.net:3000/#/store");
         //Running API test and verifying the test passed successfully
         APITestResult result = APITestRunner.run("TestPath");
         assertEquals("The status of the API Test is wrong", true, result.getStatus() );

         //Save the API test result into a variable
         String text = result.getOutParams().get(1);

         System.out.println(text);
         //Use this variable in the test - setting the value in an edit field
         name.setValue(text);

         //Validate the value in the edit field is as expected
         Verify.areEqual(name.getValue(), "John doe");

    }

Back to top

See also:

- Terminology reference

https://admhelp.microfocus.com Functional Testing for Developers 8942
Tips to improve your search results... OpenText™ Functional Testing for Developers Help Center OpenText™ Functional Testing for Developers Help 25.2 All View Local Help Center View Online Help Center Version: