generate cucumber dashboard#2401
Conversation
Hello sylvainsenechal,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
1110db7 to
a17f661
Compare
a17f661 to
f156a3e
Compare
f156a3e to
a91816b
Compare
There was a problem hiding this comment.
im gonna keep it a buck fifty : this is fully ai generated.
I had the general idea in my head to display a chronology graph of the test, I looked at cucumber documentation and found this .ndjson format that provides run time by scenario, by step, and by worker, I told claude to use D3.js on it and voila
I opened multiple independant ai session and ask them to review/optimize/refactor the code
There was a problem hiding this comment.
I think there could be some nit about truncated text, resizing behavior, but imo good enough for what we want to do
There was a problem hiding this comment.
kind of mixed feeling here : it's nice, it gives us the information we need, etc... at a relatively low cost, and fundamentally we don't care so much about "how it's done".
but at the same time,
- this is code which ends up in the CI, and may need maintenance over time : yet we have absolutely no idea how it works, no way to test, ...
- are we confident it really works as it should? (i.e. no hallucination in code)
- if we want to enrich/improve (like adding integration with k8s or zkop status) we will likely hit some growth issues: i.e. it stops working unexpectedly with new features and/or changes to tests/...
- especially looking at the code, this is not just plumbing a few libs together: it reimplements a test parser, a graph renderer, etc.... so all the more opportunities to break
Basically not very happy with the engineering (kind of expected: as you said, this is mostly vibe-coded), but practically maybe good enough : I'll not vote on this one, and let others chip in...
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
Issue: ZENKO-5267
Exploiting the extra cucumber log informations available in the ndjson format : Time spent on steps, by worker : We build a new graph to visualize how the step are running together, with some extra infos on step duration
Also now exporting the .html official cucumber report
Link to the new custom report (may take 5/15sec to load as the .ndjson log is ~50mb) : https://artifacts.scality.net/builds/github:scality:Zenko:staging-a91816b16b.build-iso-and-end2end-test.9170/data/ctst-end2end-sharded.1/reports/ctst-dashboard.html
The graph is generated with D3.js
I kept the whole logic in a single html file embedding everything needed to build the graph, as I don't want to clutter the codebase with too much files just for this, I prefer to have something self contained
The new graph is available in the artifacts under /report
Link is also directly available in the summary link, together with the cucumber official html report :
This should give us a good base to work on optimizing the execution speed of the tests, and identifying problematic tests (we can see kafka cleaner test taking 36 min for example)
I also used this branch for another pr, so I've already had the opportunity to generate ~10 times the graph, no problem so far