[devicelab] reduce iterations, uninstall at end, and use --application-binary in all startup tests#68516
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat. Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
|
||
| const int iterations = 15; | ||
| final Device device = await devices.workingDevice; | ||
| const int iterations = 5; |
|
if it needs to be 15, then it should be restricted to one important test case. Right now this effects 11 tests, so its a large resource increase to the devicelab |
|
All start_up tests seem to be quite noisy to me, and they're of similar importance. I think the best way forward is to reduce the iteration time so we can do a startup iteration in ~10 second so maybe we can do 50 iterations to further reduce the noise without depleting the device lab. |
|
We're never going to be able to do an iteration in 10 seconds |
|
For fun I ran this change on an iPhone 6 with 15 iterations and it reduced |
|
Additionally, even if our launch was 99% reliable, running it 50 times would mean that at least one run would fail about 40% of the time. |
This looks promising. If I understand it correctly, this is 2.87 seconds/iteration which is much faster than my 10 seconds/iteration goal?
We could write the benchmark in a way to ignore a certain proportion of failures and only use the successful ones to compute the average. But as a developer, I'd really love to increase the reliability as much as possible (e.g., |
Description
These devicelab tests are incredibly flaky. Currently they will build & install the same application 15 times. This causes the temp storage to fill up on android, and has a good chance of flaking on iOS due to install issues.
The change from 3 to 15 increased total test time for 2 -> 12 minutes on iOS, or roughly 5 more test equivalents for every single iOS test. Reduce the iteration count back to 5
Uninstall the app after each run so temp storage does not fill up.