To obtain URL requests that exercise different components
of JPetStore, we used the spider tool in JMeter to
traverse the web interface of JPetStore, and recorded URLs
that are sent to the backend during this process. In random
testing, multiple URLs are randomly selected to form a
transaction. In FOREPOST, URL selection process is guided
by learned rules. Various constraints must be observed
when forming transactions. For example, the user action
“checkout” is permitted only when the user already logged
into the system and the shopping chart is not empty. Thus,
if a URL representing “checkout” action is selected into a
transaction, then two other URLs representing “user logged
in” and “add to shopping cart” must also be added into the
same transaction.