2

I have an automated testing background and have been asked to look into load testing, which has me a little confused. Can someone point me in the right direction to let me know what would be the most suitable tool for load testing based on the criteria below?

  • The site is an MVC .net website that uses IdentityServer for authentication.
  • I've tried record and playback of a simple log on and navigate to a page using microsofts load testing tools in visual studio, and NeoLoad. Both failed to successfully replay the tests due to the authentication.
  • The site only functions correctly if a single user is logged in at any one time. How would I load test this to ensure that say if a single test is run with 100 concurrent users over a period of 5 minutes, that each individual test execution is with a unique login? Or at least one that has been freed up?
  • When saving new data I need to be sure that the data is unique. How do I go about making sure each individual post request sends a unique message with random but valid data across each test?

Some pointers for any tools that might achieve the above would be much appreciated.

Thanks

3
  • When you say "site only functions correctly if a single user is logged in at any one time" do you mean that a single user is only logged in once? Or that only one user total can be logged in at the same time? Oct 30, 2017 at 1:40
  • Single user is only logged in once
    – Konzy262
    Oct 30, 2017 at 8:39
  • Have you done correlation in NeoLoad? And are you using a list of users or are your trying to log on more than once using the same account every time?
    – Patrick
    Oct 30, 2017 at 12:54

4 Answers 4

1

If you want to use a record and playback type of load/stress testing. I would suggest taking a look at Gatling.

I use Gatling to test a website that has thousands of logins. Gatling has the option to input from files using feeders. You would want to look at CSV feeders and having a csv with columns login name and password. Depending on how you want to run your load testing, the feeder can either be iterated upon, or randomized, etc etc. You would then use the data returned by the feeder to login.

Very easy to implement even if you are unfamiliar with scala.

0

Given you have Identity Server I guess your application uses either OpenID or OAuth therefore it is not something you can record and replay.

Depending on exact authentication schema the steps to properly authorize the user would be different, check out the following material to get understanding on bypassing login challenge in your load test:

0

Disclosure: I have no first-hand experience with MSFT testing tools. For living, I do browser automation (for automated regression testing, load testing, and other tasks) using Selenium Webdriver and Python.

Record/playback in general are simple tools which do not give you much flexibility about how to use them to task s just a bit off the path expected by designers. Real programming language (Like Python) allows test designer substantially increase the flexibility of what can be done and how.

For instance, I have a (load) test which logs in as one of the random users from pre-selected set, selects a random data set (belonging to that user, and changing over time), and performs few operations with it. This kind of page interactions cannot be pre-recorded (data changes over time, IDs are different every day), but the flexibility of Webdriver (ability to query the page and change behavior accordingly) makes it easy task (for a programmer with decent skills - no advanced skills are necessary).

My advice would be: upgrade your skills and your toolset. Mastering a scripting language like Python will allow you to create tests scenarios as you want and need, not as designers of your tool thought you may need, and were able to implement.

0

The OpenId provider (OP) is the third party that authenticates the user. The relay party (RP) is the web service that authenticates the user. All the user needs to do is to register to the OP and receive an ID. This ID can be used to authorize her or him on all web services that support OpenID. The ID that is used for the authorization is usually a URL that is related to the user.

The OpenId authorization is as follows:

On the web service login page, the user clicks on the OpenID provider icon. The user enters her or his OpenId identificator in the pop-up window that opens up and then clicks on the Authorize button. The web service determines the OP URL, establishes a connection, and sends it the request for authorization via user browser. You can use a beanshell script for passing the value of openid token and then save it in to csv file which can be used throughout the session and thus you will be able to authorize the openId .https://github.com/kostaf/Blazemeter-blog , take this repo as sample beanshell script .For more info kindly refer the link https://dzone.com/articles/how-to-load-test-openid-secured-websites

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.