QTK.Common
The assembly QTK.Common.dll contains generic purpose functions and tests.
CsvRecordsetSelector
Stupka.QTK.Common.CsvRecordsetSelector (QTK.Common.dll)
Selects a two-dimensional recordset based on a csv file. Recordsets can either be used for testing the content of the file itself, or might be used as input for other tests or actions to provide detailed instructions.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| filter | xsd:IDREF | Reference to a recorset which is used to pre-filter the data. The filter recordset has to provide two columns column and text, the specified text is expected exactly in the corresponding column. |
|
| resource | xsd:string | Yes | Reference to a resource which contains the data. |
ManualAction
Stupka.QTK.Common.ManualAction (QTK.Common.dll)
Shows a message, asking the user to perform a specific action manually.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| text | xsd:string | Message which will be shown to the user. |
ManualTest
Stupka.QTK.Common.ManualTest (QTK.Common.dll)
Shows a message, asking the user to perform a specific test manually and state if the test passed or failed.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| text | xsd:string | Message which will be shown to the user. |
RecordsetCompareTest
Stupka.QTK.Common.RecordsetCompareTest (QTK.Common.dll)
Checks if the content of a candidate recordset matches a reference recordset. The test checks if the record exists based on a row key, and additionally tests all data columns for equality.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| exact | xsd:boolean | ||
| keycolumnname | xsd:string | Yes | Name of the column which holds the row key within the reference recordset. The key column name can be mapped to a different column in the candidate using Mapping. |
| mapping | xsd:IDREF | Reference to a selector, which provides the recordset used for column name mapping between Reference and Candidate (not all column names have to be mapped). |
|
| recordset | xsd:IDREF | Yes | Reference to a selector which provides the candidate recordset. |
| reference | xsd:IDREF | Yes | Reference to a selector which provides the reference recordset. |
Errorcodes
| Value | Errorcode | Description |
|---|---|---|
| 1 | SomeRecordsContainWrongData | All records exist, but some cells contain wrong data. |
| 2 | AllRecordsContainWrongData | All records exist, but all cells contain wrong data. |
| 3 | SomeRecordsDoNotExist | Some records do not exist. |
| 4 | AllRecordsDoNotExist | All records do not exist. |
Usage
For this test a Mapping can be specified, if Candidate has different column names as the reference recordset.
| Column | Description |
|---|---|
| Reference | Column name within Reference |
| Candidate | Column name within Candidate |
The example below shows an extract from data and a script.
data.xml
<Recordsets>
<Recordset id="reference">
<Rows>
<Row name="row1" col1="A1" col2="A2" col3="A3" />
<Row name="row2" col1="B1" col2="B2" col3="B3" />
<Row name="row3" col1="C1" col2="C2" col3="C3" />
</Rows>
</Recordset>
<Recordset id="mapping">
<Rows>
<Row reference="name" candidate="identifier" />
<Row reference="col1" candidate="data1" />
<Row reference="col2" candidate="data2" />
<Row reference="col3" candidate="data3" />
</Rows>
</Recordset>
<Recordset id="candidate">
<Rows>
<Row identifier="row1" data1="A1" data2="A2" data3="A3" data4="A4" />
<Row identifier="row2" data1="B1" data2="B2" data3="B3" data4="B4" />
<Row identifier="row3" data1="C1" data2="C2" data3="C3" data4="C4" />
<Row identifier="row4" data1="D1" data2="D2" data3="D3" data4="D4" />
</Rows>
</Recordset>
<Recordsets>
script.xml
<Script xmlns="http://www.stupka.at/qtk" comment="..." identifier="...">
<Resources>
<Resource identifier="xmldata" location="..." name="data.xml"/>
</Resources>
<Positions>
<Group comment="Recordset selection">
<Common.XmlRecordsetSelector identifier="reference" resource="xmldata" xpath="//Recordset[@id='reference']/Rows/Row"/>
<Common.XmlRecordsetSelector identifier="candidate" resource="xmldata" xpath="//Recordset[@id='candidate']/Rows/Row"/>
<Common.XmlRecordsetSelector identifier="mapping" resource="xmldata" xpath="//Recordset[@id='mapping']/Rows/Row"/>
</Group>
<Group comment="Comparison">
<Common.RecordsetCompareTest reference="reference" candidate="candidate" mapping="mapping" keycolumnname="name"/>
</Group>
</Positions>
</Script>
RecordsetContentTest
Stupka.QTK.Common.RecordsetContentTest (QTK.Common.dll)
Checks if a recordset contains a specific record, identified by a row key. Additionally, the value of a specified column can be checked.
Info
The recordset can be loaded from the file system (xml or csv), or can be created by other selectors which result in a recordset.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| columnname | xsd:string | Name of the column which holds the data. | |
| columntext | xsd:string | Value which is expected at the specified position. | |
| keycolumnname | xsd:string | Yes | Name of the column which holds the row key. |
| recordset | xsd:IDREF | Yes | Reference to a selector, which provides a recordset. |
| rowkey | xsd:string | Yes | Row key which will be searched in the specified key column. |
Errorcodes
| Value | Errorcode | Description |
|---|---|---|
| 1 | RecordExistsButDataDoesNotMatch | The record has been found, but the text does not match. |
| 2 | RecordDoesNotExist | The record does not exist at all. |
Usage
data.xml
<Recordsets>
<Recordset id="identifier">
<Rows>
<Row Col1="value1.1" Col2="value1.2" Col3="value1.3"/>
<Row Col1="value2.1" Col2="value2.2" Col3="value2.3"/>
<Row Col1="value3.1" Col2="value3.2" Col3="value3.3"/>
</Rows>
</Recordset>
</Recordsets>
script.xml
<Script xmlns="http://www.stupka.at/qtk">
<Resources>
<Resource identifier="data" location="path\to\file" name="data.xml"/>
</Resources>
<Positions>
<Group comment="Init">
<Common.XmlRecordsetSelector identifier="candidate" xpath="//Recordset[@id='identifier']/Rows/Row" resource="data"/>
<Common.RecordsetContentTest records="candidate" keycolumnname="col1" rowkey="value2.1" columname="col2" columntext="value2.2"/>
</Group>
</Positions>
</Script>
RecordsetExportExecutor
Stupka.QTK.Common.RecordsetExportExecutor (QTK.Common.dll)
Dumps a recordset to a xml file.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| filename | xsd:string | Yes | Absolute or relative filename of the export file. |
| recordset | xsd:IDREF | Yes | Reference to a selector, which provides a recordset. |
RecordsetRowCountTest
Stupka.QTK.Common.RecordsetRowCountTest (QTK.Common.dll)
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| recordset | xsd:IDREF | Yes | |
| rowcount | xsd:integer | Yes |
ScriptInformationExecutor
Stupka.QTK.Common.ScriptInformationExecutor (QTK.Common.dll)
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| scriptinformation | xsd:IDREF | Yes |
Waiter
Stupka.QTK.Common.Waiter (QTK.Common.dll)
Waits a number of seconds.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| time | xsd:integer | Yes | Time to wait in seconds. |
XmlRecordsetSelector
Stupka.QTK.Common.XmlRecordsetSelector (QTK.Common.dll)
Selects a two-dimensional recordset based on a xml file. Recordsets can either be used for testing the content of a file itself, or might be used as input for other tests or actions to provide detailed instructions.
Info
As XML is a flexible file format and does not define any structure, a xpath expression is used to select the needed data from the file. The column names of the recordset are created based on the available attribute names, the values itself have to be specified as attributes.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| filter | xsd:IDREF | Reference to a recorset which is used to pre-filter the data. The filter recordset has to provide two columns column and text, the specified text is expected exactly in the corresponding column. |
|
| resource | xsd:string | Yes | Reference to a resource which contains the data. |
| xpath | xsd:string | Yes | XPath expression for data selection. |
Usage
file.xml
<Recordsets>
<Recordset id="identifer">
<Rows>
<Row Col1="value1.1" Col2="value1.2" Col3="value1.3"/>
<Row Col1="value2.1" Col2="value2.2" Col3="value2.3"/>
<Row Col1="value3.1" Col2="value3.2" Col3="value3.3"/>
</Rows>
</Recordset>
</Recordsets>
script.xml
<Script xmlns="http://www.stupka.at/qtk" identifier="..." comment="...">
<Resources>
<Resource identifier="data" location="path\to\file" name="file.xml"/>
</Resources>
<Positions>
<Group comment="Init">
<Common.XmlRecordsetSelector host="local" identifier="def" xpath="//Recordset[@id='identifer']/Rows/Row" resource="data"/>
</Group>
</Positions>
</Script>