Testomatio - Test Management for Codeception
Module for testing REST WebService.
This module requires either PhpBrowser or a framework module (e.g. Symfony, Laravel) to send the actual HTTP request.
url
optional - the url of apishortDebugResponse
optional - number of chars to limit the API response lengthIn case you need to configure low-level HTTP headers, that’s done on the PhpBrowser level like so:
JSONPath is the equivalent to XPath, for querying JSON data structures. Here’s an Online JSONPath Expressions Tester
Conflicts with SOAP module
param array
$additionalAWSConfigthrows \Codeception\Exception\ConfigurationException
return void
Allows to send REST request using AWS Authorization
Only works with PhpBrowser Example Config:
Code:
part
jsonpart
xmlparam string
$accessTokenreturn void
Adds Bearer authentication via access token.
part
jsonpart
xmlparam string
$usernameparam string
$passwordreturn void
Adds Digest authentication via username/password.
part
jsonpart
xmlparam string
$usernameparam string
$passwordreturn void
Adds HTTP authentication via username/password.
part
jsonpart
xmlparam string
$usernameparam string
$passwordthrows \Codeception\Exception\ModuleException
return void
Adds NTLM authentication via username/password.
Requires client to be Guzzle >=6.3.0 Out of scope for functional modules.
Example:
@deprecated
param string
$namereturn void
part
jsonpart
xmlparam string
$hash the hashed data response expectedparam string
$algo the hash algorithm to use. Default md5.return void
Checks if the hash of a binary response is not the same as provided.
Opposite to seeBinaryResponseEquals
part
jsonpart
xmlparam string
$nameparam
$valuereturn void
Checks over the given HTTP header and (optionally) its value, asserting that are not there
part
jsonpart
xmlparam int
$codereturn void
Checks that response code is not equal to provided value.
part
jsonpart
xmlparam string
$textreturn void
Checks whether last response do not contain text.
part
jsonparam array
$jsonreturn void
Opposite to seeResponseContainsJson
part
jsonparam string
$jsonPathreturn void
See #jsonpath for general info on JSONPath.
Opposite to seeResponseJsonMatchesJsonPath()
part
jsonparam string
$xPathreturn void
Opposite to seeResponseJsonMatchesXpath
part
jsonparam string
$xPathparam
$expectedreturn void
Opposite to seeResponseJsonXpathEvaluatesTo
part
jsonsee
seeResponseMatchesJsonTypeparam array
$jsonType JsonType structureparam ?string
$jsonPathreturn void
Opposite to seeResponseMatchesJsonType
.
part
xmlparam mixed
$xmlreturn void
Checks XML response does not equal to provided XML.
Comparison is done by canonicalizing both xml`s.
Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes).
part
xmlparam mixed
$xmlreturn void
Checks XML response does not include provided XML.
Comparison is done by canonicalizing both xml`s. Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes).
part
xmlparam string
$xPathreturn void
Checks whether XML response does not match XPath
part
xmlparam string
$cssOrXPathparam string
$attributereturn string
Finds and returns attribute of element.
Element is matched by either CSS or XPath
part
jsonparam string
$jsonPaththrows \Exception
return array
Array of matching itemsSee #jsonpath for general info on JSONPath.
Even for a single value an array is returned. Example:
part
jsonpart
xmlparam string
$nameparam bool
$first Whether to return the first value or all header valuesreturn string|array
The first header value if $first is true, an array of values otherwiseReturns the value of the specified header name
part
jsonpart
xmlreturn string
Returns current response so that it can be used in next scenario steps.
Example:
part
xmlparam mixed
$cssOrXPathreturn string
Finds and returns text contents of element.
Element is matched by either CSS or XPath
part
jsonpart
xmlparam string
$nameparam string
$valuereturn void
Sets a HTTP header to be used for all subsequent requests. Use unsetHttpHeader
to unset it.
param
$nameparam
$valuereturn void
Sets SERVER parameter valid for all next requests.
part
jsonpart
xmlparam string
$hash the hashed data response expectedparam string
$algo the hash algorithm to use. Default sha1.return void
Checks if the hash of a binary response is exactly the same as provided.
Parameter can be passed as any hash string supported by hash()
, with an
optional second parameter to specify the hash type, which defaults to sha1.
Example: Using sha1 hash key
Example: Using sha1 for a file contents
Example: Using sha256 hash
part
jsonpart
xmlparam string
$nameparam
$valuereturn void
Checks over the given HTTP header and (optionally) its value, asserting that are there
part
jsonpart
xmlparam string
$namereturn void
Checks that http response header is received only once.
HTTP RFC2616 allows multiple response headers with the same name. You can check that you didn’t accidentally sent the same header twice.
part
jsonpart
xmlparam int
$codereturn void
Checks response code equals to provided value.
part
jsonpart
xmlreturn void
Checks that the response code is 4xx
part
jsonpart
xmlreturn void
Checks that the response code 3xx
part
jsonpart
xmlreturn void
Checks that the response code is 5xx
part
jsonpart
xmlreturn void
Checks that the response code is 2xx
part
jsonpart
xmlparam string
$textreturn void
Checks whether the last response contains text.
part
jsonparam array
$jsonreturn void
Checks whether the last JSON response contains provided array.
The response is converted to array with json_decode($response, true) Thus, JSON is represented by associative array. This method matches that response array contains provided array.
Examples:
This method recursively checks if one array can be found inside of another.
part
jsonpart
xmlparam
$expectedreturn void
Checks if response is exactly the same as provided.
part
jsonreturn void
Checks whether last response was valid JSON.
This is done with json_last_error function.
part
jsonsee
codecept_absolute_path()param string
$schemaFilenamereturn void
Checks whether last response matches the supplied json schema (https://json-schema.org/) Supply schema as relative file path in your project directory or an absolute path
part
jsonparam string
$schemareturn void
Checks whether last response matches the supplied json schema (https://json-schema.org/) Supply schema as json string.
Examples:
part
xmlreturn void
Checks whether last response was valid XML.
This is done with libxml_get_last_error function.
part
jsonparam string
$jsonPathreturn void
See #jsonpath for general info on JSONPath.
Checks if JSON structure in response matches JSONPath.
part
jsonparam string
$xPathreturn void
Checks if json structure in response matches the xpath provided.
JSON is not supposed to be checked against XPath, yet it can be converted to xml and used with XPath. This assertion allows you to check the structure of response json. *
part
jsonparam string
$xPathparam
$expectedreturn void
Checks if applying xpath to json structure in response matches the expected result.
JSON is not supposed to be checked against XPath, yet it can be converted to xml and used with XPath. This assertion allows you to check the structure of response json. *
part
jsonsee
JsonTypeparam array
$jsonTypeparam ?string
$jsonPathreturn void
Checks that JSON matches provided types.
In case you don’t know the actual values of JSON data returned you can match them by type. It starts the check with a root element. If JSON data is an array it will check all elements of it. You can specify the path in the json which should be checked with JsonPath
Basic example:
You can check if the record contains fields with the data types you expect. The list of possible data types:
You can also use nested data type structures, and define multiple types for the same field:
You can also apply filters to check values. Filter can be applied with a :
char after the type declaration,
or after another filter if you need more than one.
Here is the list of possible filters:
array:empty
- check that value is an empty arrayinteger:>{val}
- checks that integer is greater than {val} (works with float and string types too).integer:<{val}
- checks that integer is lower than {val} (works with float and string types too).string:url
- checks that value is valid url.string:date
- checks that value is date in JavaScript format: https://weblog.west-wind.com/posts/2014/Jan/06/JavaScript-JSON-Date-Parsing-and-real-Datesstring:email
- checks that value is a valid email according to https://emailregex.com/string:regex({val})
- checks that string matches a regex provided with {val}This is how filters can be used:
You can also add custom filters by using {@link JsonType::addCustomFilter()}
.
See JsonType reference.
part
xmlparam mixed
$xmlreturn void
Checks XML response equals provided XML.
Comparison is done by canonicalizing both xml`s.
Parameters can be passed either as DOMDocument, DOMNode, XML string, or array (if no attributes).
part
xmlparam mixed
$xmlreturn void
Checks XML response includes provided XML.
Comparison is done by canonicalizing both xml`s. Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes).
Example:
part
xmlparam string
$xPathreturn void
Checks whether XML response matches XPath
part
jsonpart
xmlparam string
$methodparam string
$urlparam array|string|\JsonSerializable
$paramsparam array
$filesSends a HTTP request.
part
jsonpart
xmlparam string
$urlparam array
$paramsparam array
$filesSends DELETE request to given uri.
part
jsonpart
xmlparam string
$urlparam array
$paramsSends a GET request to given uri.
part
jsonpart
xmlparam string
$urlparam array
$paramsSends a HEAD request to given uri.
link
https://tools.ietf.org/html/rfc2068#section-19.6.2.4part
jsonpart
xmlauthor
[email protected]param string
$urlparam array
$linkEntries (entry is array with keys “uri” and “link-param”)return void
Sends LINK request to given uri.
part
jsonpart
xmlparam string
$urlparam array
$paramsreturn void
Sends an OPTIONS request to given uri.
part
jsonpart
xmlparam string
$urlparam array|string|\JsonSerializable
$paramsparam array
$filesSends PATCH request to given uri.
part
jsonpart
xmlsee
https://php.net/manual/en/features.file-upload.post-method.phpsee
codecept_data_dir()param string
$urlparam array|string|\JsonSerializable
$paramsparam array
$files A list of filenames or “mocks” of $_FILES (each entry being an array with the following
keys: name, type, error, size, tmp_name (pointing to the real file path). Each key works
as the “name” attribute of a file input field.Sends a POST request to given uri. Parameters and files can be provided separately.
Example:
part
jsonpart
xmlparam string
$urlparam array|string|\JsonSerializable
$paramsparam array
$filesSends PUT request to given uri.
link
https://tools.ietf.org/html/rfc2068#section-19.6.2.4part
jsonpart
xmlauthor
[email protected]param string
$urlparam array
$linkEntries (entry is array with keys “uri” and “link-param”)return void
Sends UNLINK request to given uri.
param array
$paramsreturn void
Sets SERVER parameters valid for all next requests.
this will remove old ones.
part
xmlpart
jsonreturn void
Enables automatic redirects to be followed by the client
part
xmlpart
jsonreturn void
Prevents automatic redirects to be followed by the client
part
jsonpart
xmlparam string
$name the name of the header to unset.return void
Unsets a HTTP header (that was originally added by haveHttpHeader()), so that subsequent requests will not send it anymore.
Example: