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.
- 1.0 - Unpublished internal version
- 2.0 - Initial public release
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.
- The
pdtepp.xml
file, 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.
The EPP Selftest Tool repository contains branches matching different ranges of versions of specifications. Refer to this compatibility matrix when deciding which EPP Selftest Tool repository branch to use.
EPP Selftest Tool branch | PDT Input Data Templates | PDT Test Specifications |
---|---|---|
master | v.2.2 | v.2.2 |
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
- Config::IniFiles
- Cwd
- DateTime
- File::Basename
- File::Temp
- Getopt::Long
- List::MoreUtils
- Pod::Usage
- XML::LibXML
- XML::Simple
- PHP 5.3
- PEAR
Clone the project repository and choose branch according to the specification compatibility matrix.
$> git clone https://github.com/dotse/EPP-Selftest-Tool.git <installdir>
$> cd <installdir>
$> git checkout <branch>
<installdir>
is assumed to be in the PATH in code examples throughout the
rest of this document.
- Create a new directory
<workdir>
- Create a log directory
<workdir>/log
- Extract the
pdtepp.xml
template file into<workdir>
- Fill in the
pdtepp.xml
template 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.
Validate the input data and convert it to the intermediate format used by epp-test
:
$> epp-convert --zone <TLD>
epp-convert
reads pdtepp.xml
as input. As output it writes config.ini
and
either writes or deletes cert.pem
depending on whether or not the input file
contains a client certificate for connecting to the EPP server.
The --zone
parameter is used to sanity-check the domain names used in the
input data.
List the names of all available test cases:
$> epp-test --list
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 log/<testcase>.log
.
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