Not able to login office 365 (https://office.com) using Jmeter tool
Error details in the log:
2018/02/12 15:47:43 ERROR - jmeter.protocol.http.control.HC4CookieHandler:
Unable to add the cookie org.apache.http.cookie.MalformedCookieException:
Unrecognized cookie header 'set-cookie: stsservicecookie=ests; path=/;
secure; HttpOnly'
We have developed and integrated with 'One drive' excel and there is furthuer functionality after accessing One drive. We have to perform performance testing using Jmeter tool. Below steps followed:
Recorded the login https://office.com with our account flow using the Jmeter/Blazemeter tool> followed other functionality steps
Replied the recorded script in Jmeter 3.1>
Observed results> the results shows 'Sorry, but we’re having trouble signing you in' though just replayed the script immediately after recording.
POST https://login.microsoftonline.com/common/GetCredentialType - Successful - able to get response
POST https://login.microsoftonline.com/common/login - Failed with 200 code (Sorry, but we’re having trouble signing you in) though used all recorded parameters.
The Login POST request has many cookies (set-cookies)
Below configuration/options are already tried:
Try out different "Cookie Policy" options
Set CookieManager.check.cookies=false in user.properties file
log_level.jmeter.protocol.http.control=DEBUG
The log shows an error as pasted in the first section.
Please guide.
You should change in Http Cookie Manager the policy:
try different policies.
If it still fails, set Log Level to DEBUG:
And run again the test, then make the log file available somewhere.
Related
We are installing a nextcloud server in my organization and i would like to load test it before we deploy more broadly.
I have managed to do some testing with jmeter...(see answer below)
Now i would like to load test other features of nextcloud. I have found this repo but it seems it is not updated anymore : https://github.com/owncloud/smashbox
Anyone know if it is still working? (i dont have yet access to the nexcloud server os).
Apparently smashbox is designed for owncloud and not nextcloud...any hint on tools for nextcloud?
Thank you
If you "dont have yet access to the nexcloud server" then how do you know that "doesnt log in with http authorization manager"?
Whatever. Given Nextcloud doesn't ask your credentials most probably it's configured for Single-Sign-On and most probably it's Kerberos
If this is the case you will need to not only to add the HTTP Authorization Manager but also perform the relevant configuration in krb5.conf and jaas.conf files (live in "bin" folder of your JMeter installation).
You can check out Windows Authentication with Apache JMeter article for example setup and more comprehensive explanations.
So here is the answer :
You have to create two sampler http request.
the first request is a get request on the login page.
the second request is a post request on the login page.
You have to create a regular expression extractor to extract data-requesttoken:
data-requesttoken="(.+)"
You can reuse it in the post request (name : requesttoken) with the variable set in the extractor.
You also need to add a http cookie manager to the thread group and leave it blank so it handles the cookies set in the get request and in the post request.
Then the login works properly and you can tune in the loop, number of threads and ramp up
There is only one problem on my machine: the request randomly succeed or fail because the cookie manager sometimes set the proper cookies in the redirect after post request and sometimes not... (see here : JMeter randomly setting proper cookies so my request succeed )
I used Jmeter's HTTP(S) Test Script Recorder to record the Log in in SAP CRM Web client. I configured HTTP Cookie Manager using the cookies that I saw in browser developer tools ( MYSAPSSO2, Session ID, Sap-usercontext).
In the same recording test I filled some fields in SAP. I stopped the recording test.
I did it multiple times to see what parameters were dynamic and I realized that wfc-secure-id and C5_confighash and c7_confighash were dynamic. So I used regular expression to extract the dynamic values and I applied it in the requests where I filled the fields.
In View Results Tree I can see the HTML response in the Requests' response bodies that the log in was successful and the fields were filled. I also checked the SAP sessions metrics that the users are logging in.
After the successful login I went and did some recordings of a User roaming around inside the web client performing some operations and saving the results. I changed the dynamic values to fit the previously values I obtained in the login process.
The issue lies in the fact than when i went back to JMeter to do a test run, I get a logon error on the response header between the login and the new recordings. The response body of the new recordings also return empty.
I'm thinking that between the recordings, jmeter is losing the user session information
How can I connect the new records with the log in record?
You should not be hard-coding cookies in the HTTP Cookie Manager.
JMeter doesn't record cookies
headers.removeHeaderNamed(HTTPConstants.HEADER_COOKIE);// Always remove cookies
hence you should not be manually adding the cookies you see in browser to the HTTP Cookie Manager, adding an empty HTTP Cookie Manager should be enough to let JMeter automatically take care of incoming cookies.
If you don't see the cookies being added to the request(s) it usually means that:
Your HTTP Request sampler is not configured properly, i.e. "Server Name or IP" field is empty
Your server is not configured properly (i.e. it returns cookies which doesn't comply with the standard hence JMeter fails to add them)
The steps you could take are:
Enable debug logging for the HTTP Cookie Manager by adding the next line to log4j2.xml file:
<Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
Use less-restrictive cookie policy, i.e. netscape
Add the next line to user.properties file:
CookieManager.check.cookies=false
Check out HTTP Cookie Manager Advanced Usage - A Guide for more information on JMeter's HTTP Cookie Manager usage/troubleshooting
While doing performance testing for Oracle Application, facing the Insufficient Privilege error on submitting one of the form from Jmeter. There is no issue manually in application not any error in debug logs. This is happening only from Jmeter. Have checked with Fiddler no requests are getting missed and also all the correlations are in place.
JMeter error :
You have insufficient privileges for the current operation. Please contact your System Administrator.
Most probably you're simply not getting logged in. Double check the following:
HTTP Cookie Manager is added to your Test Plan. In some cases you will need to add CookieManager.check.cookies=false line to user.properties file or amend Cookie Policy to something less-restrictive, i.e. netscape. Check out HTTP Cookie Manager Advanced Usage - A Guide
Make sure that you perform correlation of dynamic request parameters. Pay attention to literally everything as parameters may be present as a part of the URL, or it may be a HTTP Header
Run your test with 1 user and monitor the request and response details using View Results Tree listener. Check Response Data tab for each request to ensure that your test is doing what it is supposed to be doing
Make sure to compare the requests originating from JMeter and from the real browser, normally if you're sending the same requests - you should be receiving the same responses. Pay attention to redirects
In my script, I'm using a JSESSIONID instead of a cookie; the JSESSIONID is extracted using a HTTP URL Re-writing Modifier and I can confirm that the correct value (the one which appears in the response data from the login page) is being applied in the Request.
e.g. POST https://qa67.ososinfo.org:446/Staff/staffdetail.xhtml;JSESSIONID=0655ca5420354753ae413984d34cfc27
I'm also using a VIEWSTATE, which I'm extracting prior to running the remainder of the test steps by using a Regular Expression Extractor and setting the resulting variable as a parameter in the HTTP Request,
e.g. javax.faces.ViewState=8d2%2BgOIseczB2FWSo74DqQfkmiYVaK73D8bnLTNWCx%2FB8EtE
The problem is that I'm hitting a Response code: 500 | Response message: Internal Server Error every time I attempt a post with all of the applicable data.
I tried running through the steps manually in a Firefox browser. I copied the contents of the Request tab from the failing page into a REST client, logged in using a separate tab of the same browser and grabbed the appropriate JSESSIONID and VIEWSTATE information, then posted with that info in place - and the manual post was successful.
Am I missing something? Is JMeter requiring something to accomplish this POST that a I'm not seeing in a manual attempt? Please note that I can verify the test is working through the point of login - I can manually see the jmeter user logged in from an admin screen.
Happy to share any/all of what I'm seeing if it might be helpful in helping to troubleshoot.
JMeter Internal server Error, Response Code : 500 on posting a form.
I am trying to load test our banking application with JMeter.I have successfully logged in to the application. Now I am trying to create an accuont. Account opening form has five pages and I am getting internal server error when I post the first page of the account opening process.
I have provided all possible values which are required for posting first page (As required in the browser to make it go to next page).
I have added the Cookie manager and Header manager also.
But this fails in JMeter.
Any help will be highly appreciated.
You may need to add "Http Header Manager" user your "Http Request" which is failing.
Click on add button to add on column under "Headers stored in the Header Manager"
Add Name : Content-Type
Add value : application/json
save it and run it.
This may solve your 500 (internal server error) error problem.
The best thing is to try recording to ensure you’re not missing:
header
cookie
parameter
or any additional http request.
Read:
https://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html