using Protractor to test a dashboard with 2 factor oAuth - angularjs

I am trying to test my angular application which is basically a dashboard but its behind a 2 factor authenticated security. I can not access my Dashboard without passing that, but protractor starts a new instance every time and It stops me at my 2 factor auth page where I need to enter code I received by text meassage.
I am totally faild to access it, is there any workaroud by which I can start it in my default profile of chrome where I've already logged into my portal? or any other solution which can help me get through 2 factor authentication using Protractor.

Related

Branch.io referral implementation not working in web app

I am using branch SDK in the mobile app for which I am working on for more than 2 years now. I want to have the referral feature in our web application as well. I have followed the web app integration guidelines and has integrated branch in my app. I am using v2.54.2 of branch SDK and v16.13.1 of React.
I am facing a strange issue after integrating. I am calling the branch.logout() method while the user logs out of the application. But after the user logs in back (either to the same user account or to a different user account in our application), none of the branch functionalities work. (branch.setIdentity(), branch.credit(), branch.redeem() etc.). I am getting the following error in the console
Uncaught Error: Invalid JSON string: [object Object]
at ia (build.min.js?cd67:7)
at d (build.min.js?cd67:57)
at Mb (build.min.js?cd67:57)
at eval (build.min.js?cd67:146)
at eval (build.min.js?cd67:135)
at k (build.min.js?cd67:66)
at XMLHttpRequest.Sb.g.onreadystatechange (build.min.js?cd67:64)
I’m not even able to identify which method is causing this error. The branch APIs won’t work even if I do a hard reload. After days of debugging what I found is all the functionalities will work if I open the app in a new tab and close the current tab. But if the user logout and login from the new tab, the issue comes back.
What I suspect is the global branch object, while logging out is not getting reset to the initial state. Can anyone please help me with this issue? I am stuck with this issue for more than 2 weeks now

How to test the login in Cypress with Microsoft Authentication Library (MSAL)

Trying to test React application using Cypress, Getting the issues while logging in.
The application we are using MASL third party login for Authentication.
Getting the following issues:
--> Couldn't control Microsoft Authentication Library (MSAL) login popup window using Cypress.
--> #access_token popup is not closing in Cypress automatically (in actual application closing automatically).
--> To make all remaining test cases to wait until login popup is closed and redirected back to the application.
Perhaps you will find your happiness here!
For my part, I use a solution already proposed on the net but I have a problem with the first execution of the "cy.request" command to the Microsoft authority.
I invite you to test my solution and to give me feedback on the possible difficulties encountered.

Load testing a Google App Engine Application using JMeter

I've created an application and I'd like to test how well it scales to large numbers of users.
To run my application a user has to go to the homepage, sign in to a Google account, click a button and then upload a video file.
First of all, is this possible to emulate using JMeter? I'm signed into my Google account locally but am not sure whether simulated users will have access to it?
Secondly, I've recorded a session in JMeter doing the actions above and have run the test with 10 simulated users, however, the App Engine dashboard doesn't detect any activity. I've followed the steps mentioned here but obviously with details of my application etc.
Here's a screenshot of the summary report.
Is there anything obvious I might be doing wrong? Am I using JMeter in the correct way to test the application as desired?
Apologies for my JMeter inexperience.
This is not something you will be able to record and replay, my expectation is that your application is protected by OAuth so you will need some token in order to execute your calls.
Not knowing the details of your application implementation it's quite hard to guess what's went wrong, I would recommend
Running your test with 1 user and 1 loop first to ensure that it's doing what it is supposed to be doing by adding View Results Tree listener and inspecting request and response details for each sampler (especially for failed ones).
Once you figure out what's wrong with this particular request - amend JMeter configuration so it would be successful. Repeat until you're happy with the test end-to-end.
Add load only after that and be careful as test might be sensitive to extra users/loops, especially if you're using a single login account (which is not recommended)
References:
How to Handle Correlation in JMeter
How to Run Performance Tests on OAuth Secured Apps with JMeter

Single Page App: Force Users to Log Out or Refresh

I have created a single page app using AngularJS and ASP.NET MVC 3. When deploying a new version of the application, it's possible for users to be already logged in as the application is being updated. If these users don't either refresh their browser or log out and back in again to get the new JavaScript files, they will encounter lots of errors and could potentially create invalid data.
Question: in a single page app, is there an elegant way to either prompt users to either refresh their browser or log out and back in again?
I suppose this would be possible through Web Sockets / SignalR, but are there other options?
One generic way I could see is to have your angular app send a client-version # with any http request, and your .NET side watch for that number and when it's out of date ( a newer version has been deployed ) send an error response which you would capture in your angular app. You could then just trigger a refresh or prompt the user to refresh and get the latest version.

Google 2-step verification - AngularJS - Automation failing

I am automating a web portal using AngularJS with protractor which uses google 2 step verification after you click on login. The 2 step verification sends a text message to the text phone we are using.
My Scripts are failing in the 2 step verification process as it requires manual intervention. This is a must to have and cannot remove it. How can one work around this 2 step verification process? If anyone knows, Please let me know.

Resources