Iām sharing the ShiftLeft Chrome Step Recorder: https://chrome.google.com/webstore/detail/chrome-step-recorder/ojhcleddagaoaplflbafhpekcciikdop
Itās made by testers (me) for testers.
You turn it on, do some stuff in chrome and it takes screenshots and transcribes all of your actions. In other words - does all your test evidence without any effort. If you need to, you can then annotate any steps as you need.
When youāre done, itās all designed to save as single file (no external image references). Do this either with ctrl+S for a html file or press ctrl+p and essentially āprint to pdfā.
Iād really love any thoughts/feedback from the testing community.
Iād love to expand it if there are any more ideas on any directions that are useful. Iāve not updated it for a few weeks as not sure what else would be useful (beyond the dreaded feature creep).
@conrad.braam
There is no funding.
Itās just a side project I do in evenings and weekends because itās fun and i wanted to flex some JS muscles
The initial buildout took a few weeks over xmas holidays but recent enhancements only take a couple hours here and there.
The recent annotation update was 2 or 3 evenings worth of time. Nothing too major for something I enjoy.
Thanks for having a look.
Keep me posted if you have any further thoughts
So Iām thinking ofā¦ UserReplay Iām sure there are others. They have pivoted toward Useranalytics now but I believe they started with reproducing with hard to find bugs.
Iām loving it so far. I can even try auto-install the plugin inside Selenium at some point to see if I can get it to record a automated test - that would be totally funky - assuming I can find the time.
(Today the devs deleted a button in the app, a very important button that might break a lot of tests, so as always emergency update to the tests is needed, it never ends.)
I would include screenshots of the recording to show what I think needs a bit more love, but itās backend pages, so not for consumption, so Will try explain. BUT, from right to left
the screenshots thumbnails are effing great, who came up with the āclick-and-holdā zooming, so that I donāt get RSI trying to close images, this is high spec UX stuff, good job!
I manually ran a few steps, and the page load time was always 1949 milliseconds, for every transition, so Iām a bit puzzled, since thatās consistently 2 seconds, is the page load time value shown something I just donāt understand? (Iām a newbie at web apps , but if it helps, this is a Vue framework based app).
Formatting , namely the identifiers column in the report have ā[ā ā]ā braces around itā¦ why are the ā[ā ā]ā braces there?
ā¦
[textContent : [[password values not recorded]]]
[value : [[password values not recorded]]]
[id : ppr-login-password]
ā¦
I really do like the password hiding happening, cool plugin skillz
Steps column - this column is brilliant, succinct and easy to understand!
Although Iām not about to buy this plugin, I think itās great, and deserves a virtual beer.
Thanks for taking the time buddy!
Happy to accept the virtual beer.
Good news is you wonāt need to buy it - itās free and there are no plans to change that aspect. If anything, Iām more likely to go the other way and stick the source on githubā¦
Trying to comment on your awesome feedback.
Two parts to this. Partly me, partly the web standards.
The me part: I write out the page load times time per step/action and multiple actions (clicks, sets, etcā¦) can be done over and over on the same page. I totally agree itās not the clearest when times look the same but writing out the time for each action (in my head) means āThe page you see on the screenshot took this long to load - same page = same timeā
The web standards part:
Page load time comes from what the browser itself records. This is where different web technology like vue and angular come into play.
Paste this line in chrome devtools console and youāll see the raw data recorded by the browser: performance.getEntriesByType('navigation')[0];
Point being - Itās only updated when a new page loads.
If your page doesnāt change (i.e. it does async JS calls to modify content) then page doesnāt reload so doesnāt get new times. Iāve been looking at this for a while but itās a difficult to create a one glove fits all solution to the internet.
Literally no reason for the square brackets - Thatās just the way I wrote the output! It was just to make the start and end of each identifierā¦ I captured 12 different identifiers and only write the ones that are relevant. While designing, I suppose I was worried it would be too much without a logical groupingā¦
Really good getting independent feedback. Thanks again.
That makes sense, the way timings work. Iām still learning so much about browsers, dang complex beasts. I think the beautiful part of any well built tool is that the tool can often be a way of teaching other people about the craft itās used for. And that also plays into the āraising the barā of tool quality, so that fewer people end up with terrible tools, by having one really good tool out there and available, to force the standard of other tools higher.
And good luck with the publish to open source step, itās definitely a big step coming with itās own responsibility, which is always worth downplaying if possible.