How to get the most out of the holiday season? Make your site performance-readyCigniti Technologies
Listen on the go!
The holiday season, or shall we say the ‘shopping season’ is fast approaching. This year, the ecommerce sales in U.S. alone are expected to grow by 11.2% as compared to last year, amounting to a total estimate of $149 billion. As per McKinsey, US customers spent a record $850 billion in the weeks between last Thanksgiving and Christmas.
As online shopping offers customers the benefits of crowd less browsing and no-queue-checkouts, they are preferring ease and convenience of ecommerce platforms over stampedes and long waiting hours at physical retail stores. The holiday season is huge for both customers and businesses. While the season opens up broad channels of revenues for businesses, it also is one of the most challenging and demanding time. Every year, several of these ‘unprepared’ businesses face strategic failures, causing the ultimate shopping fiasco.
Last year, while Amazon emerged out as a winner in the ecommerce space, J. Crew drove customers away with a crashed website and a “hang on a sec” screen. The massive 50% discount on all online orders lured several potential customers to the J. Crew website, but the technical glitch resulted in several incomplete orders and frustrated shoppers.
In a way, downtime is good news for any e-commerce company. It indicates tremendous success in engaging the customers and other stakeholders including vendors, back end IT teams and marketing units. This means the business is heading in the right direction. Only the performance of the IT systems has to be constantly reinforced to match the ‘difficult to predict’ user activity. Fail–Safe Performance Testing has become a must for any business environment which thrives on heavy volume transactions during peak seasons.
It is evident that demand for highly scalable and dependable system is increasing exponentially for IT–driven verticals especially e-tail, e-Learning, healthcare etc. In addition, customers are getting less tolerant and excessively vocal on social networks by sharing poor buying experience with screenshots.
Performance testing for e-commerce
When it comes to e-commerce, performance testing assumes multiple dimensions. Performance testing of such a complex system should be done in a layered approach that is both manageable and delivers comprehensive coverage. Big distributed systems can not be fully tested in a UAT environment. There are several levels of testing that stretch over a range of speeds, resources, and fidelity to a production system.
For example, a typical large system might consist of thousands of various servers, front-end Web applications, REST API servers, internal services, caching systems, and various databases. Such a system might process several terabytes of data every day and its storage is measured in petabytes. Countless clients and users constantly hit it. It is difficult to replicate all this on a UAT environment.
Testing of large–scale distributed systems is complex and there is much to test beyond traditional testing methods. Performance testing, load testing, and error testing – all should be undertaken with realistic usage patterns and extreme loads.
Traditionally performance testing approach usually involves identification of key scenarios, setting up the load environment, designing the scripts, generating load, monitoring, and at last, analysis and reporting. It works for most of the system, but it is completely a different ball game when conducting performance testing of a large–scale distributed system.
Business leaders and technology stakeholders need to look at performance from a fresh perspective. The following table describes some of the characteristics of the common test scenarios associated with large scale distributed systems:
|High Volume||» Terabyte of transactional records in database|
» Network throughput in gigabits per second
|High Transactions||» Millions of transactions per second from end users|
» Millions of transactions in database due to few triggers (e.g. large report generation due to batch processing)
|High Concurrency||» Huge user base accessing simultaneously (e.g. Facebook)|
|Geographically Distributed||» Traffic from all over the world|
|High availability||» Huge revenue loss and complaining customers due to unavailability|
|Huge Data Analytics||» Big data, data warehousing|
The following table describes performance testing solutions to address the business problems associated with a large–scale distributed system:
|Key Challenges||Proposed Solution|
|High cost for test environment setup||» Production or staging environment|
» Scaled–down environment
|High cost for load generation environment||» Cloud–based load generation tool|
|High license cost for tools and utilities||» Open–source load generation/monitoring tools|
» Use pay–per–service if number of runs are less
|Production like environment configuration||» Use CI tool like Jenkins for automatic build and deployment|
|Configuration consistency for large number of nodes||» Automatic validation of configurations before and after the execution|
» Take restore point and roll it back after the performance run
|Population of high–volume of test data||» Copy production data and mask it|
» Alteration of DB volumes
» Use tool like database generator, dbMonster
» Use historic data
|Simulation of realistic load||» Identify key scenarios and usage patterns from log files, market research, BA etc.|
» Generate load from different geographies
» Baseline response with CDN and without CDN
|Penetrating the system complexity, touching all system nodes and database tables||» Understand system architecture|
» Manually walkthrough the scenarios and watch traffic on different nodes and database tables
» Detail analysis of application logs
» Understand load balancer strategy
|Identification and testing of failover scenario||» Test the failover scenario separately during load condition|
|Third party interactions||» Simulate using stubs|
|Monitoring of large number of disparate systems||» Use diagnostic tools like AppDynamics, Dynatrace, HP Diagnostic, Glassbox|
|Result collation and analysis||» Automatic result collection and collation|
» Collection of built-in anti–patterns for quick analysis
» Knowledge base on historical failures or bottlenecks
For an e-commerce company, the user can be any computer literate individual with access to internet. This assumption makes it very difficult to predict user activity. The scenarios that generate peak traffic are susceptible to changing combinations of the demand of a product, the pricing, the launch, availability, and UX.
To stay resilient, a fail-safe performance testing consolidates the scenarios into predictable, manageable, and contingent performance support strategies, which can be implemented to match the traffic with optimized utilization of systems and resources.
Having thoroughly understood the dynamics, complexity and expectations of the eCommerce platform providers and end-users, Cigniti is confident of delivering a “World-Class” ecommerce testing solution through the means of the following levers:
- UI and User Experience Testing: In-house frameworks, toolkits, and checklists to perform automated UI validation across OEMs, Browsers and O/S
- Holiday Readiness Testing: Pay–per–use performance testing model improving application performance and assuring 90th percentile response times in standard reporting
- PCI Preparedness: Pre-defined checklists that enable preparedness of eCommerce portals for PIC DSS certification. Certified Ethical Hackers do threat modeling and test execution.
Connect with us to make your ecommerce platform ready for heavy holiday traffic.
Cigniti is a Global Leader in Independent Quality Engineering & Software Testing Services with offices in US, UK, India, Australia, and Canada.