import json
import rlr
from pathlib import Path
= list()
ebc for f in Path('~/tmp/rlr-errbucket-files').expanduser().glob('*.json'):
with open(f) as fo:
ebc.extend(rlr.eb_collection(json.load(fo)))
def errbkt_stats(errorbuckets_json_data, w=3):
"""Looking into errorBuckets.json data."""
#
def _uq(z):
"""Count unique elements."""
= list(map(str, z))
zz = len(zz)
zc = len(set(zz))
uc if uc == 1:
return '.' # A mark for "equal through all"
elif uc == zc:
return '#' # A mark for "all the values are different"
else:
return uc
#
print(' '*(56+2*w), ('|'+' '*(w-1))*0, f"{'method':{3+w*(4-0)}}", ('|'+' '*(w-1))*0, 'code' , sep='')
print(' '*(56+2*w), ('|'+' '*(w-1))*1, f"{'path' :{3+w*(4-1)}}", ('|'+' '*(w-1))*1, 'codeDescription' , sep='')
print(' '*(56+2*w), ('|'+' '*(w-1))*2, f"{'query' :{3+w*(4-2)}}", ('|'+' '*(w-1))*2, 'content' , sep='')
print(' '*(56+2*w), ('|'+' '*(w-1))*3, f"{'body' :{3+w*(4-3)}}", ('|'+' '*(w-1))*3, 'isFailure' , sep='')
print(' '*(56+2*w), ('|'+' '*(w-1))*4, f"{'' :{3+w*(4-4)}}", ('|'+' '*(w-1))*4, 'isBug' , sep='')
print(' '*(56+2*w), ('|'+' '*(w-1))*4, f"{'' :{3+w*(4-4)}}", ('|'+' '*(w-1))*5, '' , sep='')
for c, bb in errorbuckets_json_data.items():
print('---- rlr-code', c, 'with', len(bb), 'bucket(s)')
for b, rrz in bb.items():
if len(rrz) < 2:
continue
print(f' bkt {b}', f'{len(rrz):>{w}} sample(s)',
' {:>'f'{w}''}{:>'f'{w}''}{:>'f'{w}''}{:>'f'{w}''}'.format(
'request']['RequestData']['method'] for rr in rrz),
_uq(rr['request']['RequestData']['path'] for rr in rrz),
_uq(rr['request']['RequestData']['query'] for rr in rrz),
_uq(rr['request']['RequestData']['body'] for rr in rrz),
_uq(rr[
),' {:>'f'{w}''}{:>'f'{w}''}{:>'f'{w}''}{:>'f'{w}''}{:>'f'{w}''}'.format(
'response']['ResponseData']['code'] for rr in rrz),
_uq(rr['response']['ResponseData']['codeDescription'] for rr in rrz),
_uq(rr['response']['ResponseData']['content'] for rr in rrz),
_uq(rr['response']['ResponseData']['isFailure'] for rr in rrz),
_uq(rr['response']['ResponseData']['isBug'] for rr in rrz),
_uq(rr[
), )
restler (<9.1.0?) during scan
import json
with open('FuzzLean/ResponseBuckets/errorBuckets.json') as fo:
= json.load(fo)
jo
errbkt_stats(jo)
method code
| path | codeDescription
| | query | | content
| | | body | | | isFailure
| | | | | | | | isBug
| | | | | | | | |
---- rlr-code 400 with 23 bucket(s)
bkt 12d703e3-71f7-4869-a677-225388de0fa5 4 sample(s) . . . 2 . . 2 . .
bkt 1b7b4fb6-6171-48d6-8c79-34e32599066a 4 sample(s) . 2 . . . . 2 . .
bkt 22faaa2d-1126-4345-b848-b173aaf65371 4 sample(s) . 2 . . . . 2 . .
bkt 289d1ead-98c6-427c-9ba0-ca59b645c3fe 4 sample(s) . . . 2 . . 2 . .
bkt 2deb3bea-b99f-4f4b-a72f-4cacfdd1e008 2 sample(s) . . . . . . . . .
bkt 54c6a92d-ea65-492b-85fe-2463e666d698 5 sample(s) . . . # . . # . .
bkt 559165c2-9443-4c35-b5a6-0df6c5b415d6 2 sample(s) . . . . . . . . .
bkt 65548c1e-210b-43f9-a67b-ab556bc46baf 2 sample(s) . . . . . . . . .
bkt 78ee26bf-3d4d-4834-bf85-d0872d060345 10 sample(s) . . . # . . 4 . .
bkt 8faf781d-d521-4634-b22b-fb7db76f476b 10 sample(s) . . . # . . . . .
bkt 904f311d-f4a4-4e60-979f-bb01769dc582 10 sample(s) . 2 . # . . 9 . .
bkt 955a5232-632c-4f32-b009-b3b432fa4abb 10 sample(s) . . . # . . 5 . .
bkt af91c93c-51f1-48b4-9121-b9bfd2d9ff0a 4 sample(s) . 2 . . . . 2 . .
bkt b21850c5-52a8-4b9e-b3a7-4de8b6771c17 5 sample(s) . . . # . . # . .
bkt b4f5edb2-8dd6-4332-966e-a427f97ada91 6 sample(s) . . . # . . # . .
bkt b7e5c070-0780-43d8-b41e-4ebb608ab12b 2 sample(s) . . . . . . . . .
bkt dff1a5ec-3b5c-4dad-8740-3bff6a4c9ef1 4 sample(s) . . . 2 . . 2 . .
bkt e6d30352-4b25-4c54-ad66-6dc5deb8b2ff 4 sample(s) . 2 . . . . 2 . .
bkt e79e569e-d495-443f-a5e8-9c0573a8647e 2 sample(s) . . . . . . . . .
bkt f6d89172-3fbd-4b4b-aa67-82168b938b49 2 sample(s) . . . . . . . . .
---- rlr-code 422 with 1 bucket(s)
bkt 381fc09b-39e8-401b-95af-3aa0087324a4 2 sample(s) . . . . . . . . .
---- rlr-code 500 with 59 bucket(s)
bkt 389dccda-ab41-4de3-b15b-454ae8a25d75 10 sample(s) . . . # . . . . .
bkt 60f3e232-bcfc-4f27-9c1f-b00c7573c472 4 sample(s) . . . 2 . . . . .
bkt 6b70d752-656e-4a25-af1c-947201d63b37 10 sample(s) . . . 8 . . 7 . .
analyzer v9.1.0
import json
with open('FuzzLean/ResponseBuckets-reanalyzed/errorBuckets.json') as fo:
= json.load(fo)
jo
errbkt_stats(jo)
method code
| path | codeDescription
| | query | | content
| | | body | | | isFailure
| | | | | | | | isBug
| | | | | | | | |
---- rlr-code 400 with 23 bucket(s)
bkt 0504e3e8-b8b6-41a9-b9b4-79b345ba13dc 2 sample(s) . . . . . . . . .
bkt 0fae6823-4bda-4483-aa0c-8b60f03faa0e 24 sample(s) . . . # . . 5 . .
bkt 1341cedf-9fb0-499d-bbb4-b2a00722b83f 4 sample(s) . 2 . . . . 2 . .
bkt 19a8e0b9-422a-4c2a-987a-012f243eaf57 10 sample(s) . 2 . # . . 9 . .
bkt 249d85f4-4bb7-4671-bcb8-70feeebe09d4 4 sample(s) . 2 . . . . 2 . .
bkt 28852097-3d21-48f3-8201-0d5b19496c86 6 sample(s) . . . # . . # . .
bkt 3d12b625-9650-4301-9ff4-36138b41986a 81 sample(s) . . . 75 . . 4 . .
bkt 42add072-e0f6-4196-be42-2997143df536 2 sample(s) . . . . . . . . .
bkt 44e51b94-4ed4-458c-a8ea-583615dcf6e3 4 sample(s) . . . 2 . . 2 . .
bkt 4ac322b8-025c-4185-817b-c1ffc8baca2b 5 sample(s) . . . # . . # . .
bkt 50222a70-02f1-4498-9cf8-f59353d27629 4 sample(s) . 2 . . . . 2 . .
bkt 756b9756-2e00-4b2a-b1f6-eeb3025acc62 4 sample(s) . . . 2 . . 2 . .
bkt 77ba596c-3d53-4c02-8a3b-dd3110b99f0a 2 sample(s) . . . . . . . . .
bkt 9e332225-71e2-454c-b5e6-c324a055bab1 4 sample(s) . 2 . . . . 2 . .
bkt a8aeb430-6fa6-4a76-8fee-1350e526f76e 5 sample(s) . . . # . . # . .
bkt bd4de22f-8f4c-49c0-86da-cecab16eb3dd 2 sample(s) . . . . . . . . .
bkt db8cb0ba-020f-4ec0-91a0-59319216c2f0 50 sample(s) . 2 . # . . 5 . .
bkt e6884646-914f-4d62-a7bc-3c2634e3e634 4 sample(s) . . . 2 . . 2 . .
bkt ecf06e04-de4f-450e-ae28-4770a6365933 2 sample(s) . . . . . . . . .
bkt ff149c33-3871-4b42-af86-28982785a8e4 2 sample(s) . . . . . . . . .
---- rlr-code 422 with 1 bucket(s)
bkt ab7c2416-536a-4e26-b485-425f01e2ef9d 2 sample(s) . . . . . . . . .
---- rlr-code 500 with 59 bucket(s)
bkt 7acdaff6-92fb-4b09-b592-710023d85b38 4 sample(s) . . . 2 . . . . .
bkt 81c0ecf4-a59c-4b5d-af9a-198ff364fd97 23 sample(s) . . . 9 . . 7 . .
bkt b2fd9ebe-fc61-4325-8ca5-3ab9675fc5fd 89 sample(s) . . . 72 . . . . .