Parse entire JSON response and look at all properties
Create ResponseObjectFitness: an individual (i.e. request) that results in a rare JSON object (looking first at unseen keys and then at unseen value categories) will have a high fitness
For integers categories like negative, positive and zero can be used. Or look at range, values outside the range seen so far should get higher fitness value.
For strings look at special cases: empty string, non-empty string or length
Clustering can be used for both integer values and strings. Only store cluster instead of all values or keys. See if new values or response objects fall outside of cluster -> high fitness.
ResponseObjectFitness is created. It differentiates between methods, their params, and the value category of the param values.
Currently a dictionary is kept that stores the 'path' of a value category, i.e. method/param/value-category. This means that the distance (based on an empty dictionary) between method/param1/value-category and method/param2/value-category is the same as the distance between method1/param1/value-category and method2/param1/value-category, which is not ideal.
Following the meeting on the 15th of February:
Parse entire JSON response and look at all properties
Create ResponseObjectFitness: an individual (i.e. request) that results in a rare JSON object (looking first at unseen keys and then at unseen value categories) will have a high fitness
For integers categories like negative, positive and zero can be used. Or look at range, values outside the range seen so far should get higher fitness value.
For strings look at special cases: empty string, non-empty string or length
Clustering can be used for both integer values and strings. Only store cluster instead of all values or keys. See if new values or response objects fall outside of cluster -> high fitness.