# API Test Automation

**URL:** <https://forum.robotframework.org/t/api-test-automation/4002>\
**Category:** Robot Framework\
**Created:** [14 June 2022 10:08 UTC](https://forum.robotframework.org/t/api-test-automation/4002 "2022-06-14T10:08:40Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Morad\_Elkhaily](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Morad\_Elkhaily](https://forum.robotframework.org/u/Morad_Elkhaily)\
**Post date:** [14 June 2022 10:08 UTC](https://forum.robotframework.org/t/api-test-automation/4002/1 "2022-06-14T10:08:40Z")

</div>

Hello Everyone,

Regarding API automation, Can we check the body contents of an API response PLZ.  
Exemple :

{ “id”: 187, “creationUser”: “Testtest”, “creationRemoteUser”: “TEst”, “cancelRemoteUser”: null, … }

If yes how can we do it?  
FYI : I’m not talking about the response Status: 200, 400, 500, …

Best Regards,  
Morad

---

<div class="post-metadata">

**Author:** ![damies13](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.robotframework.org/damies13/32/623_2.png) [@damies13](https://forum.robotframework.org/u/damies13)\
**Post date:** [15 June 2022 12:53 UTC](https://forum.robotframework.org/t/api-test-automation/4002/2 "2022-06-15T12:53:26Z")

</div>

Hi Morad,

Which library are you using to call the api? The answer to your question will vary depending on the library.

If you can show an example of how your calling the api i’ll try to show how you could modify your code to get the response.

Dave.

---

<div class="post-metadata">

**Author:** ![Morad\_Elkhaily](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Morad\_Elkhaily](https://forum.robotframework.org/u/Morad_Elkhaily)\
**Post date:** [27 June 2022 10:00 UTC](https://forum.robotframework.org/t/api-test-automation/4002/3 "2022-06-27T10:00:37Z")

</div>

Hello Dave,  
Thanks for your replay.  
You will find below an exemple of an api call :

> ${json\_string}= catenate  
> … {  
> … “rtnId”: “0123654788”,  
> … “individualAddress”:{  
> … “firstName”:“Morad”,  
> … “lastName”:“Amchari”,  
> … “title”:“M”,  
> … “addr1”:“4, rue du Clair Bocage”,  
> … “addr2”:“B3”,  
> … }  
> ${body} = evaluate json.loads(‘’‘${json\_string}’‘’) json  
> ${response} = POST /pull ${body}

---

<div class="post-metadata">

**Author:** ![damies13](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.robotframework.org/damies13/32/623_2.png) [@damies13](https://forum.robotframework.org/u/damies13)\
**Post date:** [27 June 2022 10:41 UTC](https://forum.robotframework.org/t/api-test-automation/4002/4 "2022-06-27T10:41:32Z")

</div>

Hi Morad,

You didn’t really answer the question, are you using [POST](https://robotframework-requests.netlify.app/doc/requestslibrary#POST) from Requests library?

If yes, you don’t really need `${body} = evaluate json.loads(‘’‘${json_string}’‘’) json` you can simply do this:

```python
${json_string}= catenate
… {
… "rtnId": "0123654788",
… "individualAddress":{
… "firstName":"Morad",
… "lastName":"Amchari",
… "title":"M",
… "addr1":"4, rue du Clair Bocage",
… "addr2":"B3",
… }
${response}= POST https://your.host/pull json=${json_string}

```

But if you want to just pass the path and not the host details you should probably use [POST On Session](https://robotframework-requests.netlify.app/doc/requestslibrary#POST%20On%20Session) after creating your session with [Create Session](https://robotframework-requests.netlify.app/doc/requestslibrary#Create%20Session)

Also be careful with your double quotes (some windows programs mess them up `“` is not the same as `"` and `“` is not valid JSON.

Dave.

---

<div class="post-metadata">

**Author:** ![Morad\_Elkhaily](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Morad\_Elkhaily](https://forum.robotframework.org/u/Morad_Elkhaily)\
**Post date:** [28 June 2022 13:28 UTC](https://forum.robotframework.org/t/api-test-automation/4002/5 "2022-06-28T13:28:32Z")

</div>

Hi Dave,  
Sorry for the missing response, Yes exactly i use :

> Library RequestsLibrary

After the launch of this API request i receive two Data’s,

> Response status: 200  
> Body :  
> { “id”: 187, “creationUser”: “MoradAM”, “creationRemoteUser”: “Robot”, “cancelRemoteUser”: null, … }

My question is how can i check the contains of the Body.

Regards,  
Morad

---

<div class="post-metadata">

**Author:** ![isparian](https://avatars.discourse-cdn.com/v4/letter/i/d26b3c/32.png) [@isparian](https://forum.robotframework.org/u/isparian)\
**Post date:** [28 June 2022 13:36 UTC](https://forum.robotframework.org/t/api-test-automation/4002/6 "2022-06-28T13:36:05Z")

</div>

This YouTube video shows how to validate API response body content:

[Part 3- POST Request | Rest API Testing using Robot Framework](https://www.youtube.com/watch?v=7AvEryZhUWc)

---

<div class="post-metadata">

**Author:** ![Morad\_Elkhaily](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Morad\_Elkhaily](https://forum.robotframework.org/u/Morad_Elkhaily)\
**Post date:** [28 June 2022 13:55 UTC](https://forum.robotframework.org/t/api-test-automation/4002/7 "2022-06-28T13:55:26Z")

</div>

Thank you So much.  
Appreciate that

---

<div class="post-metadata">

**Author:** ![damies13](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.robotframework.org/damies13/32/623_2.png) [@damies13](https://forum.robotframework.org/u/damies13)\
**Post date:** [29 June 2022 08:28 UTC](https://forum.robotframework.org/t/api-test-automation/4002/8 "2022-06-29T08:28:07Z")

</div>

Hi Morad,

You can also refer to [Response Object](https://robotframework-requests.netlify.app/doc/requestslibrary#Response%20Object) in the RequestsLibrary documentation `${response.json()}` should give you a dictionary that you can test i.e.

```python
Should Be Equal As Integers	${response.json()}['id']	187
Should Be Equal As Strings	${response.json()}['creationUser']	MoradAM

```

Dave.

---

<div class="post-metadata">

**Author:** ![Morad\_Elkhaily](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Morad\_Elkhaily](https://forum.robotframework.org/u/Morad_Elkhaily)\
**Post date:** [29 June 2022 13:07 UTC](https://forum.robotframework.org/t/api-test-automation/4002/9 "2022-06-29T13:07:07Z")

</div>

Hello Dave

Thank you for the response and your time regarding this topic.

Regrads,  
Morad
