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 Squad).
The aqTestCase.Begin
method sets the starting point for the code fragment you want to mark as a test case.
To set the ending point, use the aqTestCase.End
method.
Declaration
aqTestCaseObj.Begin(TestName, ExternalTestCase)
aqTestCaseObj | An expression, variable or parameter that specifies a reference to an aqTestCase object | |||
TestName | [in] | Required | String | |
ExternalTestCase | [in] | Optional | String | Default value: Empty string |
Result | None |
Applies To
The method is applied to the following object:
Parameters
The method has the following parameters:
TestName
Specifies the name under which the code fragment will be added to the Summary report.
Note: The test engine does not check whether test cases with the same name already exist in your project suite. You can have multiple test cases with the same name.
ExternalTestCase
Specifies the name of the external test (for example, a Zephyr test case) to which you want to bind the results of the specified code fragment.
To bind test results to a Zephyr test case, specify the needed test case as follows:
zfj://<test_case_key>
Your project must be bound to a Jira project and the specified Zephyr case must exist in it. To learn more about TestComplete integration with Zephyr Squad and about binding TestComplete projects to Jira projects, see Integration With Zephyr Squad.
If the specified external test does not exist, an error will be posted to the TestComplete test log.
Result Value
None.
Remarks
-
The
aqTestCase.Begin
andaqTestCase.End
methods do not allow creating nested test cases. TheEnd
method call must alway follow theBegin
method call. -
If you call the
aqTestCase.Begin
method without calling an accompanyingaqTestCase.End
method, TestComplete will treat all the executed code (from theaqTestCase.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
andaqTestCase.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 theaqTestCase.Begin
method must run before the routine that calls theaqTestCase.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.
-
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
{
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
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
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
{
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
End Method
Summary Report
Integration With Zephyr Squad