Application performance is an important factor in customer satisfaction. Poor application performance will impact the functionality and lead to frustrated customers which in turn will cause loss in revenue.
Determining the workload for the performance testing is an important activity in which we determine the actions performed by the users, how many users will login to the application and the time that should be added to the scripts in order to ensure we have a realistic load during the performance test. However performing the Load test with the analysed workload can always have discrepancies in comparison to the live traffic or live workload in our performance testing Hence to overcome this we used the GoReplay tool to capture the live workload and and replay the same in the performance or stage environment
GoReplay is an open source tool, which captures load in the form of requests; the captured requests can be replayed to mimic a live environment in the stage/performance environment.
We have created a performance test environment with below design flow to achieve an effective performance test. Here our system captures the live load and Load generation machines replay the load to the Stage performance machines.
How to Install and Capture live traffic with GoReplay tool on Windows environment.
Prerequisites:
- Live environment and stage environment should be exactly the replica(i.e the Machine size, Operating system, Database etc)
Note: Having the exact replica of the database server would involve privacy rights(Such as GDPR).
- The Load balancer should be configured for redirecting https request to http
- Npcap should be installed on the machines where requests have been captured. Link to download Npcap application https://nmap.org/npcap/
- Download the GoReplay tool from the below URL https://github.com/buger/goreplay/files/1696582/goreplay.zip
- Extract the downloaded file and navigate to the extracted folder
- Open command prompt and change directory where the GoReplay application is present.
- Run the below command to generate requests_0.gor file(it will capture the traffic and save it).
Goreplay --input-raw :80 --output-file requests.gor --output-file-size-limit 1024m --output-file-queue-limit 0
Replay the captured traffic on Windows environment with GoReplay tool
- Run the below command to relay the captured traffic
Goreplay --input-file "requests_0.gor" --output-http "https://DNS"
With the GoReplay tool it’s easy to detect the performance issues at the early stage of the performance test and we can ensure that we do effective performance testing for the application located at different locations by capturing the peak load.