Retail:PerformanceTesting
Contents |
Introduction
The Web POS is a complex and powerful web application. This means that its performance requirements are a bit higher than other, simpler web sites. Features such as the taxes and discounts computation engine, which are necessary for offline operation, require a significant amount of processing power in the device which acts as Point of Sale terminal.
However, in previous versions of the Web POS this was not explained at all when using the application, and therefore it could be confusing for users, and could lead to frustration.
Our goal with the Performance Test which has just been added to the application is twofold:
- First, we want to warn users in case the performance of the device they want to use the Web POS is simply not enough.
- Secondly, even though the performance of a particular device may be enough for many situations, it can be maybe a bit lacking in case of the particular needs of some users (for example, in case a customer needs to create tickets with a large number of lines, or with a large amount of masterdata defined in the system). That's why we want to provide a table which users can use to identify if the performance is reasonably high for their needs, or if they should aim for more.
The performance test
We have decided to embed the Sunspider benchmark inside the Openbravo mobile platform. This benchmark is quite known industry wide, and quite frequently used by sites to analyze Javascript performance.
This benchmark is executed automatically when a device opens the Web POS for the first time, and when it finishes it generates a score. If the score is above the minimum we have established for an appropriate experience when using the Web POS, the user will simply see a green success message on the top of the screen.
However, if the score is below this minimum, the user will see a popup with information about this.
If you are familiar with the Sunspider test, you will notice that it normally produces a final value which is the number of milliseconds that it took to execute the test. We have decided to transform this number of milliseconds into a score which is greater the more performing your device is, just for clarity.
How to analyze the results
As we just mentioned, the test produces a score. If the score is good enough, you will see it briefly in the top of the screen. If it's not enough, you will see it in the results popup which is open after the test is finished. You can also find this score in both cases by looking at the "Log client" window in the backend, as a message is always generated with the score, for debugging purposes.
We have created the following table, which contains rough guidelines of the experience you are expected to get depending on the score you got in your device:
Score | Example devices | Experience |
---|---|---|
Greater than 4000 | Modern personal computers | Very good. Performance should be fine in all situations. |
2000-4000 | High-end phones/tablets, low-end/outdated PCs | Quite good. Performance should be ok except in very unfrequent cases. |
1000-2000 | Mid-range phones, very low end/outdated personal computers | Adequate. Performance should be ok except in cases of long tickets, or big amounts of masterdata |
500-1000 | Low end phones and tablets, Chrome browser in non-optimized devices | Inadequate. Frequent stalls, particularly with big tickets. |
Less than 500 | Very low end phones and tablets, with Cortex A9/A53 processors | Very inadequate. Very frequent stalls expected, particularly when computing the ticket with discounts, or performing other complex operations. In worst cases, the application itself may misbehave, and errors due to excessive freezing may occur. |
What happens if the score is not high enough
If the score you got is low, it most likely means that the performance when using the Web POS will not be enough. If the score is very low, you could even encounter errors when using the application, such as data being corrupted, and the frequent need to clear the browser cache in order to use the application again.
It's important to take this into account when picking the devices which will be used as terminals, because as was previously mentioned, the Web POS is quite demanding in terms of performance. The hardware requirements page is a useful guide to understand what the Web POS requires in terms of hardware.
There are several factors which may contribute to a terminal having less performance than what it should have, such as:
- Antivirus software consuming resources
- Other software, or processes, running in the background
- Not having enough free disk space
- Not having enough free RAM, if there are other programs running in the background
It's important to check these factors when looking at the performance of a device, as they may have a significant impact in the user experience when running the Web POS.
Is it possible to run the test again
In some cases, particularly system administrators may be interested in running the test several times in a row, to check different configurations, or try to find the root cause of some system slowness. This can be done from the Web POS menu, by selecting the option "Start Performance Test".
This option is by default not available for users, and needs to be enabled by using the system preference "Mobile Activate Performance Test menu"