Open bootstraponline opened 4 years ago
I think good entry to resolve this issue is to split output into points. So we can decide which of points are important for user and how should be displayed. For now I can specify following points in flank output:
version: local_snapshot
revision: 71aac52b6883d9e55b9fccb798771cbea5d1dbb3
AndroidArgs
gcloud:
results-bucket: test-lab-v9cn46bb990nx-kz69ymd4nm9aq
results-dir: null
record-video: false
...
Uploading app-debug.apk Uploading flaky-androidTest.apk ..
6 tests / 2 shards
2 matrix ids created in 0m 3s
https://console.developers.google.com/storage/browser/test-lab-v9cn46bb990nx-kz69ymd4nm9aq/2020-05-20_04-54-17.446000_SUAG/
Matrices webLink matrix-2kfcwoyh1z9tz https://console.firebase.google.com/project/flank-open-source/testlab/histories/bh.bf178d418be9d33e/matrices/7897562908617453208 matrix-4ssc3q1dsjfxa https://console.firebase.google.com/project/flank-open-source/testlab/histories/bh.bf178d418be9d33e/matrices/6539867209135871024
6. Test execution status
Could be different depends on needs. Currently we can display 3 different output styles. https://github.com/Flank/flank/pull/779. For example:
3m 35s Test executions status: FINISHED:2 PENDING:2 RUNNING:4
or
3m 1s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-0 execution-1745swg41t0b2 FINISHED 2m 55s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-1 execution-2tgcqxrrupgu5 FINISHED 4m 58s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-1 execution-1689yp4w2xewa Starting instrumentation test. 4m 23s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-0 execution-17j3zh3bwvc5m Preparing device. 4m 52s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-0 execution-28h3aflk56m55 Installing apps. 4m 58s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-0 execution-2fht77lyehkk8 Completed instrumentation test. 4m 52s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-1 execution-3ttu7s12ylovo Starting instrumentation test. 4m 58s matrix-3hy98fkuzmdpy NexusLowRes-28 shard-1 execution-ugdjrkzws8mka Starting instrumentation test.
7. Info about result data synchronization
FetchArtifacts ............ Updating matrix file
8. Summary info about execution report
MatrixResultsReport 0 / 2 (0.00%) 2 matrices failed
Error: Matrix failed: matrix-2kfcwoyh1z9tz FINISHED failure https://console.firebase.google.com/project/flank-open-source/testlab/histories/bh.bf178d418be9d33e/matrices/7897562908617453208 Error: Matrix failed: matrix-4ssc3q1dsjfxa FINISHED failure https://console.firebase.google.com/project/flank-open-source/testlab/histories/bh.bf178d418be9d33e/matrices/6539867209135871024
Probably some of those parts can may look different depending on test run configuration. The error messages are also another story
@bootstraponline I like idea about displaying details from 8. in table
If we want to reduce size of log we can remove point 2 and write full config to file. This is only suggesstion.
We can also consider to set single line output style as default (point 6).
Thanks for breaking the problem down into sections! I love that approach.
My primary motivation was improving the user experience when reading the log data. I think it's fine if the log is a bit long.
For example:
Uploading app-debug.apk Uploading flaky-androidTest.apk ..
compared to gcloud
Uploading [../test_app/apks/app-debug.apk] to Firebase Test Lab... Uploading [../test_app/apks/flaky-androidTest.apk] to Firebase Test Lab...
The second one is a bit more informative. The formatting is also cleaner. I'm not sure I have a specific proposal here, the task would be to think about alternative options.
@bootstraponline I like idea about displaying details from 8. in table
Awesome. I created a dedicated ticket for this task. https://github.com/Flank/flank/issues/810
@bootstraponline I spoke with Jan and have thought about it for a while also and there are few things that can be done here to improve readability of the output and I wanted to gather them together:
You have already agreed with Jan on 4 but I think that also 3 would be a good improvement here. We probably should also get some input on the shortening of particular content sections where you see it fits without losing any important information in first sight.
That sounds great. I trust @jan-gogo's judgement on what's important. Gcloud provides a good baseline for the types of information we're looking to display.
Upload logs should be refactored as well (within this issue scope)
Some of the work was already done in this scope. I think we need a summary comparison of flank and gcloud output log. May be in the table form. Flank shares some output details with gcloud but probably not all and may display them in different ways. With detailed summary we can compare each part of the flank and gcloud outputs one by one and decide if there is more work to do.
The gcloud output seems more user friendly and structured. It's probably worth aligning Flank output a bit more with gcloud, although we don't have to follow it exactly.
I think pointing people to the support page is a nice touch. The matrix summary table is cool. There might be a fancier way of displaying our report results as well.
For example this format isn't super readable.
Flank output: