Add simple benchmark & a test framework (#2022)

See #2019, #2020 and #2021 for failed attempts at using a benchmark framework. So, for now I'll just go with timing the results manually. 

For trying this out:
- Backup your current account first, maybe there are some bugs in switching accounts.
- You can run benchmarks on either an emulated device or a real device. For better benchmark results, you should run the benchmark on a real device and make sure that the core is compiled in release mode.
- Disable animations on your device, otherwise the test may fail. (Developer options -> Window animation scale, Transition animation scale & Animatior duration scale -> set all three of them to 0x)
- In Android Studio: File -> Sync project with gradle files
- In Android Studio: Run -> Edit configurations -> `+` -> Android Instrumented test -> Either select a specific class or select "All in Module" -> OK -> Select your configuration in the toolbar -> Click on the green "run" button in the toolbar to run the tests

When the benchmark is done, you will get a result like `MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057`, Paste `11635,11207,11363,11352,11279,11183,11137,11145,11032,11057` into a cell in a LibreOffice spreadsheet, do `Data -> Text to columns`, choose `,` as a separator, hit `OK`, and create a diagram.
This commit is contained in:
Hocuri 2021-08-11 14:01:15 +02:00 committed by GitHub
parent e8cf64d5ea
commit f7b74e4963
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 198 additions and 10 deletions

View file

@ -155,6 +155,32 @@ environment.
`export PATH=$PATH:$ANDROID_NDK`.
# Run UI Tests and Benchmarks
- You don't necessarily need a dedicated testing device.
Backup your current account first, maybe there are some bugs in switching accounts.
- You can run benchmarks on either an emulated device or a real device.
You need at least Android 9. For better benchmark results,
you should run the benchmark on a real device and make sure that the core is compiled in release mode.
- Disable animations on your device, otherwise the test may fail:
at "Developer options"
set all of "Window animation scale", "Transition animation scale" and "Animatior duration scale" to 0x
- In Android Studio: "File" / "Sync project with gradle files"
- In Android Studio: "Run" / "Edit configurations" / "+" / "Android Instrumented test":
Either select a specific class or select "All in Module" / "OK" /
Select your configuration in the toolbar / Click on the green "run" button in the toolbar to run the tests
When the benchmark is done, you will get a result like
`MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057`.
You can paste `11635,11207,11363,11352,11279,11183,11137,11145,11032,11057`
into a cell in a LibreOffice spreadsheet, do "Data" / "Text to columns",
choose `,` as a separator, hit "OK", and create a diagram.
# Credits
The user interface classes are based on the Signal messenger.