apache / jmeter

Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services
https://jmeter.apache.org/
Apache License 2.0
8.34k stars 2.09k forks source link

Issue with the form selection on Tririga application with Jmeter proxy recording #5254

Open asfimport opened 4 years ago

asfimport commented 4 years ago

jatinder (Bug 64209): Issue description – When trying to record https web traffic from Tririga web pages using Jmeter Proxy recording, we see that redirection urls are not constructed properly thus server responding back with a 404-Not Found response. We do not see this issue while recording the application in Fiddler, LoadRunner, Silk performer or any other tools at our disposal. We also notice that for the first selection on the form, the redirect happens correctly, and the selection options are displayed but from second selection onwards, we start seeing the issue no matter which page we select or which field on the page. If we stop recording after first selection and then start again, we would be able to do one more selection and so on.

First selection on the form Success -

List of requests for Success. POST https://xxxx.xxxx.com/trivpt1/html/en/default/actionHandler/actionDelegate.jsp

POST https://xxxx.xxxx.com/trivpt1/html/en/default/actionHandler/actionProcessor.jsp

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/openWithHeaders.jsp?winName=/trivpt1/html/en/default/reportTemplate/viewPageReport.jsp?propertyId=208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry%20-%20Find%20-%20Country%20for%20Documentum%20System%20Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/frameHdn.html

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/loading.html

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/header.jsp

GET https://xxxx.xxxx.com/trivpt1/html/en/default/js/templateScripts.jsp

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/openWithObjectMain.jsp?winName=/trivpt1/html/en/default/reportTemplate/viewPageReport.jsp?propertyId=208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry%20-%20Find%20-%20Country%20for%20Documentum%20System%20Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1

GET https://xxxx.xxxx.com/trivpt1/html/en/default/js/templateScripts.jsp

POST https://xxxx.xxxx.com/trivpt1/html/en/default/reportTemplate/viewPageReport.jsp POST data: propertyId=208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1&bookmarkable=false&MGRiODZhYTk5NGZj=Vq-RF8cPq1GQG6-X_LWVwlisS9B61eNI GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/activityCheck.jsp

Failure - Second time trying to select same field on same form in same session results in 404 - Not Found. Requests are different when selecting same field twice and second time it fails.

POST https://xxxx.xxxx.com/trivpt1/html/en/default/actionHandler/actionProcessor.jsp

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/openWithHeaders.jsp?winName=%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/loading.html

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/frameHdn.html

GET https://xxxx.xxxx.com/trivpt1/html/en/default/js/templateScripts.jsp

GET https://xxxx.xxxx.com/trivpt1/html/en/default/common/openWithObjectMain.jsp?winName=%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1

GET https://xxxx.xxxx.com/trivpt1/html/en/default/js/templateScripts.jsp

POST https://xxxx.xxxx.com/trivpt1/html/en/default/common/%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1&bookmarkable=false

POST data: MGRiODZhYTk5NGZj=Vq-RF8cPq1GQG6-X_LWVwlisS9B61eNI

Severity: normal OS: All

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Jmeter_Form_Selection_Successful_Request_Snapshots.docx: Jmeter successful Request Snapshots

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Jmeter_Form_Selection_Failed_Request_Snapshots.docx: Jmeter Failed Request Snapshots

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Jmeter_Form_Selection_Problem_Description.docx: Problem Description and Error snapshot

asfimport commented 4 years ago

@FSchumacher (migrated from Bugzilla): Thanks for the report. To help you, we probably need more information.

Could you provide the version of JMeter, Java, Browser and OS you used?

Are there any error messages in the jmeter.log file?

Is the browser giving any error messages in its developer console (e.g., press F12 on Firefox)?

Is there a publicly available site, that we can repeat the recording?

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Versions -

OS - Windows Version 10.0.17763 Build 17763

Jmeter Jmeter version 5.2.1 ( we used lower versions as well and see same issue in 5.0, 4.0 and below).

Chrome Version - Chrome Version 79.0.3945.117 (Official Build) (64-bit) Version - Mozilla (27.0.1) We see the issue in chrome, Mozilla and IE as well.

Error in Jmeter.log file ? We do not see any entries in the Jmeter.log file when we observe this issue during recording.

Error - In the chrome developer tools as well, we see the same error 404 - Not found. Other than that we do not see any errors.

Not Found The requested URL /trivpt1/html/en/default/common//trivpt1/html/en/default/reportTemplate/viewPageReport.jsp?propertyId=208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581658&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193454119219075&olv=1&bookmarkable=false was not found on this server.

On the chrome developer tools, we see following error

<html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /trivpt1/html/en/default/common//trivpt1/html/en/default/reportTemplate/viewPageReport.jsp?propertyId=208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581658&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193454119219075&olv=1&bookmarkable=false was not found on this server.</p> <hr> <address>IBM_HTTP_Server at xxxx.xxxx.com Port 8443</address> </body></html>

Request URL: https://xxxx.xxxx.com/trivpt1/html/en/default/common/%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581658&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193454119219075&olv=1&bookmarkable=false Request Method: POST Status Code: 404 Not Found Remote Address: [::1]:8888 Referrer Policy: no-referrer-when-downgrade

This application is not exposed to external users and thus cannot be accessed outside our network.

asfimport commented 4 years ago

@FSchumacher (migrated from Bugzilla): In the error message from chrome the url reported is: Request URL: https://xxxx.xxxx.com/trivpt1/html/en/default/common/%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581658&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193454119219075&olv=1&bookmarkable=false

Where is the %2F (=/) after ...default/common/ coming from? Is this correct?

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Here is my understanding from what is happening

  1. On clicking the search scope button for the first time, the url invoked is *actionProcessor.jsp and this is same for first time, second time and so on.
  2. Next request *openWithHeaders.jsp is the second request in after redirection. For the successful selection for first time, we do not see any of the parameters being URL encoded. But after first time selection, second time onwards, we do see that WinName and reportName fields do have URL Encode option checked.
  3. there are few pages inbetween like frameHdn.html, loading.html, header.jsp, Scripts.jsp that do bring more informaiton on the page.
  4. Next request *openwithObjectMain.jsp request in successful request have winName not having %2F characters but in the failed requests winName have %2F characters and reportName do not have %2F encoding characters thus at this point the two requests are completely different.
  5. Final request which is correctly shown as *viewPageReport.jsp in successful request but it is an invalid request in failed selection request

Expected - 559 /trivpt1/html/en/default/reportTemplate/viewPageReport.jsp

parameters - propertyId 208133 false text/plain true projectId 1 false text/plain true refSpecTypeId 10002093 false text/plain true passThrough false false text/plain true reportTemplId 143615 false text/plain true reportName cstCountry+-+Find+-+Country+for+Documentum+System+Country false text/plain true altGuiListId -1 false text/plain true ffCnt 1 false text/plain true ffn1 triNameTX false text/plain true ffv1 false text/plain true smartField 1 false text/plain true associatedId 225581648 false text/plain true manager 1 false text/plain true parentSOSubCategoryId 1 false text/plain true selectType single false text/plain true tempSpecId 727193449844299074 false text/plain true olv 1 false text/plain true bookmarkable false false text/plain true MGRiODZhYTk5NGZj Vq-RF8cPq1GQG6-X_LWVwlisS9B61eNI false text/plain true

Response - HTTP 200

Actual - 570 /trivpt1/html/en/default/common/%2Ftrivpt1%2Fhtml%2Fen%2Fdefault%2FreportTemplate%2FviewPageReport.jsp%3FpropertyId%3D208133&projectId=1&refSpecTypeId=10002093&passThrough=false&reportTemplId=143615&reportName=cstCountry+-+Find+-+Country+for+Documentum+System+Country&altGuiListId=-1&ffCnt=1&ffn1=triNameTX&ffv1=&smartField=1&associatedId=225581648&manager=1&parentSOSubCategoryId=1&selectType=single&tempSpecId=727193449844299074&olv=1&bookmarkable=false

Response - HTTP 404

Ultimately, I think while parsing some of the these requests, Jmeter decides to change how it understands the request and parameters and what parameters are to be url encoded. For the first request is does correctly and then for second request it does it differently then how it did for the first time. This creates requests which are not understood to server.

asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Z1.png: Sucessful request first time selection in recording

Sucessful request first time selection in recording
asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Z2.png: Sucessful request second time selection in recording

Sucessful request second time selection in recording
asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Z3.png: Sucessful 2nd request first time selection in recording

Sucessful 2nd request first time selection in recording
asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Created attachment Z4.png: Sucessful 2nd request second time selection in recording

Sucessful 2nd request second time selection in recording
asfimport commented 4 years ago

jatinder (migrated from Bugzilla): Provided the information as requested.

asfimport commented 4 years ago

@pmouawad (migrated from Bugzilla): Unfornately, analysing issue is not easy without live access to the application.

Would this be feasible ?