Testing Simultaneous HTTP Requests using cURL
Tuesday, February 27th, 2024Testing Simultaneous HTTP Requests in Parallel using cURL
If you're developing a web application and are worried that a similar HTTP request could come in multiple times from different users (or clients) exactly at the same time, you can see how your application will behave by using cURL (on modern versions of Linux) to create this rare (if almost impossible) circumstance:
curl --parallel --parallel-immediate --parallel-max 3 --header "Content-Type: application/json" --request POST --data '{STRINGIFIED_JSON_PAYLOAD}' --config urls.txt
The urls.txt file will contain the URL to your API endpoint you're testing the same number of times as the –parallel-max parameter. So in our case, it would contain:
url = "https://pathtoapiendpoint" url = "https://pathtoapiendpoint" url = "https://pathtoapiendpoint"
Check how your application behaves and make appropriate changes to maintain concurrency if you're worried about this happening. There are various approaches you can use to make sure concurrency is maintained such as appending the old value of the database record into your where clause when updating to see if the data has already been changed within the timeframe of the request being processed.
Or, you can use persistent virtual columns like this: