The purpose of the EPP Selftest Tool is to help gTLD applicants prepare for Pre-Delegation Testing (PDT) by clarifying the transformation from input XML to submitted EPP commands.
While the EPP Selftest Tool does send actual EPP requests and does report the EPP responses, it does not verify the the correctness of the responses. Neither does it verify the pre- and post-conditions listed in the PDT EPP test case specifications.
The EPP Selftest Tool and the actual EPP testing under PDT are not equal. There is no guarantee that successfully running the EPP Selftest Tool means that the same EPP system will pass the EPP testing under PDT. For example, the parts of EPP tests under PDT that include DNS or Whois lookups are not included in the EPP Selftest Tool. For a complete reference of the EPP tests under PDT see the PDT EPP documents.
- v2.2.0 - Updated XML schema (2014-06-27)
- v2.1.0 - SNI support, clean-up, bug fixes (2014-03-13)
- v2.0.0 - Initial public release (2013-09-27)
- v1.0.0 - Unpublished internal version
The Pre-Delegation Testing microsite hosts the following documents relevant to the EPP Selftest Tool:
- The PDT_EPP_TC document, within the PDT Test Specifications zip, specifies the test cases that the EPP Selftest Tool partially implements.
pdtepp.xmlfile, within the PDT Input Data Templates zip, is a template for the input data XML file.
- The EPP test section of the PDT Input Data Instructions document describes how to fill in the input data XML template.
Specification compatibility matrix
Refer to this compatibility matrix when deciding which version of EPP Selftest Tool to use.
|EPP Selftest Tool version||PDT Input Data Templates||PDT Test Specifications|
1 For SNI-support, the
pdtepp.xsd of the PDT Input Data Templates
zip needs to be replaced with the
pdtepp.xsd supplied with the
EPP-Selftest-Tool. No replacement for the
pdtepp.rnc of the PDT Input Data
Templates zip is provided.
The entire source code is this license except ireg which is LGPL 2.1, Client.php which is GPL 2.0 and parseIniFile.php which is Creative Commons Attribution. Refer to the respective files for copyright ownership.
- Ubuntu 12.04
- Perl 5.14
- PHP 5.3
Clone the project repository and choose version according to the specification compatibility matrix.
$> git clone https://github.com/dotse/EPP-Selftest-Tool.git <installdir> $> cd <installdir> $> git checkout <version>
<installdir> is assumed to be in the PATH in code examples throughout the
rest of this document.
Working directory setup
- Create a new directory
- Create a log directory
- Extract the
pdtepp.xmltemplate file into
- Fill in the
pdtepp.xmltemplate file according to the PDT Input Data Instructions and PDT_EPP_TC documents
<workdir> is assumed to be the current working directory in code examples
throughout the basic usage section.
Input data validation
Validate the input data and convert it to the intermediate format used by
$> epp-convert --zone <TLD>
pdtepp.xml as input. As output it writes
either writes or deletes
cert.pem depending on whether or not the input file
contains a client certificate for connecting to the EPP server.
--zone parameter is used to sanity-check the domain names used in the
Test case selection
List the names of all available test cases:
$> epp-test --list
Test case execution
Run a test case using this command:
$> epp-test --case <testcase>
When called with the
--case parameter, the
epp-test command executes the
EPP transactions determined by the
--case argument and the contents of the
config.ini file. The response code of each transaction is printed to STDOUT
and a more detailed log is written to
NOTE: Test cases may consume test data, so in order to run a test case again the test data needs to be reset or new data needs be supplied.
The basic usage described above can be adapted to other settings by using additional command line parameters. For details please refer to the usage information of the respective commands.
$> epp-convert --help $> epp-test --help
epp-testis unable to resolve an EPP server domain name in an undelegated zone:
The domain name resolution is performed by the operating system. In order help the operating system resolve the name you can add an entry to your
hostsfile or use a custom DNS server that does delegate the zone.