You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Welcome to the TM Forum Open API Conformance Testing and Validation Instructions Page!

The following guidelines will take you through the various steps needed to run self-testing for your API to achieve conformance certification.

Self-Certification is based on the TM Forum Open API conformance profile, it is the process by which an implementation is confirmed to support the standard definition of a TM Forum Open API.

The TM Forum provides a set of scripts useful to self-certify your implementation of TM Forum Open API specifications. You will need to install and run the applicable API CTK. Currently there is a limited number of CTKs available for conformance testing but the list is steadily increasing. The following is a list of APIs which have currently CTKs available for conformance testing:

The following instructions describe how to install an Open API CTK

Tools needed for Open API CTK testing and validation:

 

  • Newman (needed for CTK test execution), this is the command line version of 'Postman'; installation instructions available at: https://www.getpostman.com/docs/newman_intro

  • Node.js offers a server-side environment, which allows the use of JavaScript language to generate web pages. Basically, it replaces server languages such as PHP, Java EE, etc. Node.js is available for download through the following link: https://nodejs.org/en/download/

 

Once Node.js and Newman are installed follow the next steps:

 

1  Import CTK from TM Forum

2  Configure environment

 

  • Download environment file from TMForum (TMFENV)
  • Modify environment file to refer to the endpoint where the implementation to be certified is running (see step 3 below)
  • Store modified file into the folder in your system where Newman runs

3  You need to create your testing environment. The environment is a text file without extension written in JSON. It has the following format:


{ 

   "id": "b0294beb-2229-65b4-7eba-b6d57d0a59c4", 

   "name": "theName", 

   "values": [ 

                   { 

                                   "key": "Host", 

                                   "value": "http://writeyourhosthere", 

"type": "text", 

                                   "name": "Host", 

                                   "enabled": true 

                   }, 

                   { 

                                   "key": "tmForumAPI1", 

                                   "value": "{{Host}}/tmForumAPI1", 

                                   "type": "text", 

                                   "name": "testedAPI", 

                                   "enabled": true 

                   } 

   ], 

   "timestamp": 1432767028962, 

   "synced": false, 

   "syncedFilename": "" 

} 

You can use this as a template. Create a file with this format, replace the values for the name, the host and your API addresses and put it in the same folder as the postman collections.

4  Now download the right script for your platform (either Windows or Linux/Mac), put it in the same folder and run script execution command.

 5  A folder name results will be created and filled with the output of the tests. You should see something like the following:

 

Iteration 1 of 1 

request [object Object] 

request typeobject 

201 651ms POST  /customer http://env-0693795.jelastic.servint.net:8080/DSTestedApi/api/api/testedApi/v2/testedApi 

? Content-Type is present application/json 

? Status code is 201 

? Response contains ID 13208 

? Response contains HREF 

? POST Body Response equals Request Body 

201 187ms POST  /testedApi copy http://env-0693795.jelastic.servint.net:8080/DSTestedApi/api/testedApi/v2/testedApi 

? Content-Type is present application/json 

? Status code is 201 

? Response contains ID 13263 

? Response contains HREF 

? POST Body Response equals Request Body 

200 62ms /current copy http://env-0693795.jelastic.servint.net:8080/DSTestedApi/subscriber/api/current 

204 67ms delete hub by id copy http://env-0693795.jelastic.servint.net:8080/DSTestedApiManagement/api/testedApi/v2/hub/13262 

? Successful DELETE request13262 

Summary: 

Parent                    Pass Count FailCount 

------------------------------------------------------------- 

Folder customer test              18         0 

Folder hub test                       8          0 

Total                                      26          0  

If they are no failures, then you have passed the CTK and your API is conformant with all the Mandatory features.

The results of the CTK are in the testedapiCTKResult.html and should look like (example with Customer Management API):



 

  • No labels