Applies to TestComplete 14.20, last modified on September 11, 2019

Description

You can mark arbitrary parts of script code as test cases. Such “test cases” will be included in the Summary report as a separate entry. You can also send the results of such “test cases” to an external test management system (for instance, Zephyr for Jira).

The aqTestCase.End method sets the ending point for the test case started by the aqTestCase.Begin method.

Declaration

aqTestCaseObj.End()

aqTestCaseObj An expression, variable or parameter that specifies a reference to an aqTestCase object
Result None

Applies To

The method is applied to the following object:

Result Value

None.

Remarks

  • The aqTestCase.Begin and aqTestCase.End methods do not allow creating nested test cases. The End method call must alway follow the Begin method call.

  • If you call the aqTestCase.Begin method without calling an accompanying aqTestCase.End method, TestComplete will treat all the executed code (from the aqTestCase.Begin method call to the end of the run) as a single test case.

    However, in this case, TestComplete will not send test results to an external test management system (if it is specified by the aqTestCase.Begin method’s ExternalTestCase parameter).

  • The aqTestCase.Begin and aqTestCase.End methods do not necessarily need to belong to the same routine. They can belong to different routines as long as the proper call order is kept: the routine that calls the aqTestCase.Begin method must run before the routine that calls the aqTestCase.End method.

  • To make sure that the ending point is always set properly in your test cases, we recommend that you use the Begin and End methods along with handling exception statements.

    Show Example

  • You can use the methods in data-driven tests to isolate individual iterations through a data source.

Example

The following sample code marks a part of the Main routine as the Create an order test:

JavaScript, JScript

function Main()
{
  var page = Aliases.browser.page;
  var panel = page.Aspnetform.panel;

  panel.Username.SetText("Tester");
  panel.Password.SetText("test");
  panel.submitbutton.Click();
  page.Wait();

  // Sets the beginning of the "Create an order" test
  aqTestCase.Begin("Create an order");
  try{

    page.Aspnetform.table.cell1.linkOrder.Click();
    page.Wait();

    var cell = page.Aspnetform.table.cell.panelContent.tableorder.cell;
    cell.selectProduct.ClickItem("ScreenSaver");
    …
    cell.panel.linkProcess.Click();

    page.Wait();
    page.Aspnetform.table.cell1.linkViewAllOrders.Click();
    page.Wait();

  }
  catch (e){
    …
  }

  finally{
    // Sets the end of the "Create order" test
    aqTestCase.End();
  }

  var table = page.Aspnetform.table.cell.panelContent.panel.table;
  table.Cell(1, table.ColumnCount(1) - 1).ImageButton(0).Click();
  page.Wait();

  …

  Aliases.browser.Close();
}

Python

def main():
  page = Aliases.browser.page 

  panel = page.Aspnetform.panel
  panel.Username.SetText("Tester")
  panel.Password.SetText("test")
  panel.submitbutton.Click()
  page.Wait()
  
  # Sets the beginning of the "Create an order" test
  aqTestCase.Begin("Create an order");
  try:
    page.Aspnetform.table.cell1.linkOrder.Click()
    page.Wait()

    cell = page.Aspnetform.table.cell.panelContent.tableorder.cell
    cell.selectProduct.ClickItem("ScreenSaver")
    #...
    cell.panel.linkProcess.Click()
  
    page.Wait()
    page.Aspnetform.table.cell1.linkViewAllOrders.Click()
    page.Wait()
  except Exception as e:
    #...
  finally:
    # Sets the end of the "Create order" test
    aqTestCase.End()
  
  table = page.Aspnetform.table.cell.panelContent.panel.table
  table.Cell(1, table.ColumnCount[1] - 1).ImageButton(0).Click()
  page.Wait()
  
  #...
  Aliases.browser.Close()

VBScript

Sub Main
  Dim page, table, settings
  Set page = Aliases.browser.page
  Dim panel
  Set panel = page.Aspnetform.panel
  Call panel.Username.SetText("Tester")
  Call panel.Password.SetText("test")
  Call panel.submitbutton.Click()
  Call page.Wait

  ' Sets the beginning of the "Create an order" test
  aqTestCase.Begin("Create an order")
  On Error Resume Next

    Dim cell
    Call page.Aspnetform.table.cell1.linkOrder.Click
    Call page.Wait

    Set cell = page.Aspnetform.table.cell.panelContent.tableorder.cell
    Call cell.selectProduct.ClickItem("ScreenSaver")
    …
    Call cell.panel.linkProcess.Click

    Call page.Wait
    Call page.Aspnetform.table.cell1.linkViewAllOrders.Click
    Call page.Wait

  If Err.Number <> 0 Then
    …
  End If
  ' Sets the end of the "Create order" test
  aqTestCase.End

  Set table = page.Aspnetform.table.cell.panelContent.panel.table
  Call table.Cell(1, table.ColumnCount(1) - 1).ImageButton(0).Click
  Call page.Wait

  …

  Call Aliases.browser.Close
End Sub

DelphiScript

procedure Main;
var page, panel, table, cell;
begin
  page := Aliases.browser.page;

  panel := page.Aspnetform.panel;
  panel.Username.SetText('Tester');
  panel.Password.SetText('test');
  panel.submitbutton.Click;
  page.Wait;

  // Sets the beginning of the "Create an order" test
  aqTestCase.Begin('Create an order');
  try
  begin
    page.Aspnetform.table.cell1.linkOrder.Click;
    page.Wait;
    cell := page.Aspnetform.table.cell.panelContent.tableorder.cell;
    cell.selectProduct.ClickItem('ScreenSaver');
    …
    cell.panel.linkProcess.Click;
    page.Wait;
    page.Aspnetform.table.cell1.linkViewAllOrders.Click;
    page.Wait;
  end;
  finally
    // Sets the end of the "Create order" test
    aqTestCase.End;
  end;
  table := page.Aspnetform.table.cell.panelContent.panel.table;
  table.Cell(1, table.ColumnCount[1] - 1).ImageButton(0).Click;
  page.Wait;

  …

  Aliases.browser.Close();
end;

C++Script, C#Script

function Main()
{
  var page = Aliases["browser"]["page"];
  var panel = page["Aspnetform"]["panel"];

  panel["Username"]["SetText"]("Tester");
  panel["Password"]["SetText"]("test");
  panel["submitbutton"]["Click"]();
  page["Wait"]();

  // Sets the beginning of the "Create an order" test
  aqTestCase["Begin"]("Create an order");
  try{

    page["Aspnetform"]["table"]["cell1"]["linkOrder"]["Click"]();
    page["Wait"]();

    var cell = page["Aspnetform"]["table"]["cell"]["panelContent"]["tableorder"]["cell"];
    cell["selectProduct"]["ClickItem"]("ScreenSaver");
    …
    cell["panel"]["linkProcess"]["Click"]();

    page["Wait"]();
    page["Aspnetform"]["table"]["cell1"]["linkViewAllOrders"]["Click"]();
    page["Wait"]();

  }
  catch (e){
    …
  }

  finally{
    // Sets the end of the "Create order" test
    aqTestCase["End"]();
  }

  var table = page["Aspnetform"]["table"]["cell"]["panelContent"]["panel"]["table"];
  table["Cell"](1, table["ColumnCount"](1) - 1)["ImageButton"](0)["Click"]();
  page["Wait"]();

  …

  Aliases["browser"]["Close"]();
}

See Also

aqTestCase Object
Begin Method
Summary Report

Highlight search results