The system should be able to perform automated performance benchmarking tests with minimal manual steps.
The two applications currently needs testing are:
The performance tests should collect the following data metrics:
Power Related:
For each of the application's graphics features, the same data metrics should be collected.
A minimum of 5~10 runs of the test suite should be performed for each application. Each run should collect all of the metrics listed above. Metric results from all runs can then be summed and averaged for a balanced final result.
One key requirement is to create a consistent test environment in order to minimize variances to the result.
This requires a way to automate the test process and steps instead of manually performing them.
A script should be launched to automatically launch the test applications (in this case MockTaoBao and comp_demo).
The performance measuring process should also be setup and launched at the same time in order to collect data metrics.
The automated script should then invoke the "actions" which will stress the specific application features, while the instrumenting tool is collecting the data, and then complete the "actions", and stop the data collection process.
The actual actions involving human touch controls for scrolling, etc. should be done programmatically if possible, in order to minimize human variances. However, if this is not possible, then care should be taken so that the human activities should vary as little as possilbe during each run.
The collected data should then be processed and analyzed for the data metrics listed above.
For testing the Swift UI version of the TaoBao application, the system should perform "frequent scrolling" to stress the system and gather the data points.
This simulates fast scrolling by user of the applications' main screen. An automated script to quickly scroll the main product display at least 5-10 times downward (by swiping up) and then reversing the scroll upward (by swiping down).
Repeating the actions above, within a predetermined time window (such as 10 seconds) should yield enough data points for analysis.