A scenario where it looked like IBM Rational Performance Tester (RPT) was not capturing the 'Refresh' actions. While trying to record a SAP Business Objects session using RPT through Internet Explorer, there were many application triggered 'Refresh' that took place.
The 'Refresh' process would take sometime to end and it appeared like a progress window, as seen below -
RPT was capturing the actions when the 'Refresh' button was manually clicked by the user. However, it looked like RPT was not capturing the actions when the application triggered the 'Refresh' action.
During the application triggered 'Refresh' process, it could be noticed that the client sent requests like:
A GET request with a time stamp as a parameter was sent multiple times, as seen in the pic below -
The server replies for the above requests were as below -
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Expires" content="never">
There are several such exchanges until the refresh had ended.
Interestingly, it was noticed that the same request was sent again and again during the active session of the "Refresh" progress window. Looking at the server replies, one would think that RPT is not capturing the 'Refresh' actions triggered by the application.
It seemed to be a little confusing looking at the the Client requests with empty html pages and its corresponding server replies. However, after analyzing the requests and corresponding responses, it could be noticed that the RPT script was simulating the below request by looping on -
Until the server could send -
It was also noticed that the Client was sending empty.html requests every 20 seconds until the Server returned a response to the initial POST request.
POST /BOE/OpenDocument/1403261721/AnalyticalReporting/webiDHTML/viewer/processPrompts.jsp ...
GET /BOE/OpenDocument/1403261721/AnalyticalReporting/webiDHTML/viewer/ajaxUserPref.jsp ...
GET /BOE/OpenDocument/1403261721/AnalyticalReporting/webiDHTML/viewer/report.jsp?iViewerID=1&sEntry=we00010000911d489583a1 ...
There was nothing "missing" in the test!!
You can notice that there is a POST request for 'processPromps.jsp' and a GET request for 'report.jsp. The request "report.jsp" might have been sent too soon. RPT will in fact wait until the initial POST's response is received before sending the report.jsp request since the dynamic data (such as the sEntry value) in the report.jsp URL are being extracted from the POST's response. Thus, the playback will automatically have the correct synchronization. The empty.html requests sent every 20 seconds should not be a concern and could be removed from the test if required without any impact.