Ask a Question

script assertion

SOLVED
Donkey2017
Occasional Contributor

script assertion

Hi, not being a programmer could anyone suggest a way to check if the property "apples" has a number rather than just null for example. So below is the result of running a test. I can easily ask SOAP to check if there is an item called "apples" but I have no idea how to ask if "apples" equals a numerical value- any value not just 111.

 

{  

"CONTENT":   

{      "apples": 111,  

 

},

 

.......in my own language.... I have a test in SOAP- one element of that test = "apples". I want to add a SCRIPT Assertion that checks that the test has created a Value for "apples" and not just a blank or "0".

 

 

thanks in advance

.....almost total non-programmer

7 REPLIES 7
nmrao
Champion Level 2

Can you post complete data (need not be your exact data), but should be same structure.
By the way, below are some examples using json.

https://github.com/nmrao/groovyScripts/tree/master/json


Regards,
Rao.
Donkey2017
Occasional Contributor

Thanks Rao, below is what is returned after running the test:

{
   "CONTENT":    {
      "FILTERS": [],
      "asset_id": null,
      "asset_subtype": "xxxxxx",
      "asset_type": "xxxxxxx",
      "cost_multiplier": 0,
      "created_date": 20170602,
      "created_time": 153701,
      "effective_date": 20201123,
      "expiry_date": 20221101,
      "id": 114,
   },
   "message": "Modifier successfully saved.",
   "modifier_id": 114,
   "status": "OK"
}

 

Associated with this test are 2 simple assertions:

1. Valid HTTP Status Code

2. JsonPath ExistenceMatch---- here I just check ID exists; which it does -114

 

It is the ID I am most interested in but knowing that ID is there is kind of pointless if I cannot check that a value has been created for it. I can make an error with the input so and ID result is not created but the assertion would still be valid- ID would still be there but empty.

I need to check that a value has been produced- it could be 1 or 99999999 so long as an ID value has been produced.

I did look at your link but I simply do not understand enough to apply it in an useable way.

Regards

 

nmrao
Champion Level 2

You mean to say value should be in the range between x and y (x, y belongs to integer)


Regards,
Rao.
Donkey2017
Occasional Contributor

Hi Rao, no it does not need to be between any range in particular- it just has to be a number- any number; so long as it is not "null" or nothing..... as in  "".

 

I just need to check that an integer has been created for the item ID.

 

Thanks

nmrao
Champion Level 2

//Below Script Assertion should do the job
def json = new groovy.json.JsonSlurper().parseText(context.response) //check id is number assert json.CONTENT.id instanceof Integer, 'id is not integer type' assert 0 < json.CONTENT.id, 'id is not a positive number'


Regards,
Rao.
Donkey2017
Occasional Contributor

OMG! Thanks so much Rao..... that did the trick. Now I'll try to apply your script to other conditions...

Regards

nmrao
Champion Level 2

You can mark accept as solution.


Regards,
Rao.
cancel
Showing results for 
Search instead for 
Did you mean: