Aug 3, 2020
This is a list of content I posted to, or found useful, on Twitter. And stuff I posted to my blog, and Patreon.
The pdfs collating the content below are on this post for $5 and above Patreons.
Looking through my daily notes I can see that I released some new practice test apps:
I used the new functionality in GitHub to create a readme page to showcase the various projects that I have easily accessible online.
API Challenges is a pretty major undertaking:
- hosted on heroku
- free to access and use
- stores challenge progress on S3
- has 30+ challenges
- has a functional API
- built in documentation
- swagger file to download
- a view only GUI to see the data
- available to download and run as a jar file
I've started creating videos and blog posts around the challenges because while I already have information on API Testing there are more real world nuances than I could really cover in that book. The challenge debrief videos will allow me to explore the nuances in the context of a challenge that hopefully people will have worked through.
Most of the challenges only take a few minutes to solve if you know the technology. And like security testing CTFs or Viv Richard's Testers Playground they are useful refreshers when you already know the technology, and useful guides when you are learning.
I also presented at BrowserStack's BreakPoint 2020. This gave me a chance to talk about some approaches to automating that I don't really talk about much, but have code examples online. Simple model based automation approaches and in browser and debug protocol uses.
My new Linkedin Learning Course on WebDriver Page Objects and Abstractions was released:
The Test Application I created for the course can be found here:
Much of the API challenge work was documented on Patreon as I was building it. With some lessons learned on Security Testing, using Browser Mob Proxy, Uni Rest, SQL (sqlzoo.net). And I released all the challenge videos early, ad free, with transcripts.
I released a recording of my BrowserStack talk to Patreon supporters.
There is also now, a dedicated Patreon discord server to support adhoc chat and link sharing for Patreon supporters.
Twitter Summary for June 2020
This summary is pulled from reports generated by Chatterscan.com (A free Twitter Client)
I filter by user @eviltester, show retweets, and replies. Then look in the page source to find the markdown to copy and paste.
A few things that caught my eye I saw when reviewing my Twitter feed:
- The Google XSS Game a fun game for practicing XSS, my son and I used this to practice our XSS skills.
- RT @testingcurator: Blog Update: "Testing Bits: 351 - July 26th - Aug 1st, 2020" - Our curated collection of #QA & #Testing articles/blogs…
- Postman now runs in the browser RT @DannyDainton: Not up to much really...Just using @getpostman in a web browser because you can totally do that now...
- A Thread of web games to help learning Web Development RT @joshbuchea: Here’s some great web-based video games to help you master web development skills while having a little fun!
- I particularly like the CSS Diner
Blog Posts For July 2020
- A minimal WebDriver based DSL
- How to Capture HTTP Messages with WebDriver
- How to capture HTTP Messages and network traffic with Selenium WebDriver and an HTTP proxy, and configure the browser to direct all traffic through the proxy.
- Selenium WebDriver with Java - Online Training Course
- An indepth online training course to help you get started with and master Selenium WebDriver with Java.
- Why is my SlowLoadableComponent not waiting?
- Common reason that a SlowLoadableComponent is not synchronising, is because the isLoaded method is not throwing an error. Make sure to catch any exceptions and convert them into Error.
- How to Use a Fluent Wait DSL with WebDriver
- Why has my WebDriver Browser Not Closed?
- How to Select a Web Element using CSS when id containing '.'
- Selecting an id with a fullstop or period in it requires a little escaping with CSS selectors.
- Why Does Selenium Not Work With This Alert?
- Difference between Selenium WebDriver getText and getAttribute
- What are my next steps after writing my first Selenium WebDriver test?
- How to Create Fluent Page Objects
- Fluent Page Objects can help make code easier to write, but we have to be careful not to couple too many classes together. This post explains how to create a fluent page object DSL.
- Fluent Helper Classes for SlowLoadableComponent Page Objects
- SlowLoadableComponent isLoaded methods can be very ugly but are a good example of where helper classes can help, and in particular fluent helper classes.
- June 2020 EvilTester.com and Patreon Content Summary
- Content created and collated for EvilTester.com, Patreon and Social for June 2020
- RestAssured Tips for Proxies and Logging
- Ordering Headers In HTTP Requests with RestAssured and UniRest
- RestAssured does not support ordering headers in HTTP Requests. But UniRest does. This post explores how they compare.
- Automating To Detect Change
- BrowserStack - Breakpoint 2020 - Talk
- Much of the automating we do to support testing involves detecting change. Once our tests pass, they fail when the system changes and the automated execution alerts us to the change. There are other ways that automating can help us.
- API Testing Challenge Activities - a gamified playground to practice API Testing
- How can you learn and practice API Testing? With a set of challenges designed to guide you through the basic technlogies and principles.
- API Testing Challenge - How To - POST challenger 201
- How to solve challenge POST challenger 201.
- API Testing Challenge - Debrief - POST challenger 201
- A discussion and debrief overview of the POST challenger 201 API Challenge.
Patreon Posts For July 2020
- Backlog work
- Backlog work
- Swagger Open API Generation
- Swagger files can be imported into Insomnia and Postman to kick start the API messages you need to interact with an API.
- API Challenges - Debrief - POST Challenger 201
- Debrief with more information about the POST Challenger 201 challenge.
- API Challenge How To - POST Challenger 201
- The simple how to video for API Challenge POST Challenger 201
- Running Api Challenges Single User
- Using the API Challenges in single user locally.
- What is the simplest thing that could work?
- Tip for identifying simple approaches.
- Brute Force Tooling
- notes on brute force tooling
- Creating a Multi-User Session on API Challenges
- How to create a multi-user session for tracking challenges in the API Challenges
- Welcome to API Challenges - video
- Overview of the API Challenges application.
- SQL Playgrounds
- some sql playgrounds.
- API Challenges and Amazon S3 Storage
- Amazon AWS SDK is huge, the S3 abstraction seems too big for what it is. But API Challenger now stores sessions on S3.
- BrowserStack 2020 Talk Practice Recording
- Recording of my BrowserStack Conference talk practice session.
- API Challenges App released live with multiuser
- API Challenges App released live with multiuser and link to the automated execution examples using REST Assured.
- REST API Challenges and Rest Assured
- Change one thing at a time. So the cause is related to the thing you change.
- Another New API Practice App - apichallenges.jar
- Initial release of my gamification engine for learning API testing.
- Discord Reminder
- Discord Server Patreon Benefit is Active.
- Test Automation Rules are Heuristics
- There are no rules. There are only heuristics. Rules imply going against them. Heuristics imply making decisions.
- Tactical Model Based Automating
- An example of some Model Based Automating that I will use to support a conference talk.
- BrowserStack Online Conference
- Breakpoint 2020 questions and answers.
- Avoiding Mocking by Working with Abstractions
- Abstracting away the technology or library abstractions, can help remove the need to mock objects in our code.
- Thingifier Test API Released
- After a week of mostly head down coding, I've create a public deployed version of The Thingifier.
- Comparative Oracles - Software Testing Fundamentals
- Comparative Oracles are very useful when we have no defined requirements.
- Another API Spec tool and some coding heuristics
- A free API book, some tools, and some coding heuristics I use, or try to remember to use, when writing code.
- New Test App - button based calculator
- New practice app added to the test pages - a button based calculator.
- Re-enabled Discord
- Discord server available for patreon chat.
- New APIs and tried out the UniRest Java API Library
- I released new versions of my Thingifier test APIs and had to use UniRest instead of RESTAssured for extra control.
- Content Summary for June 2020
- Content Summary for June 2020
- June 2020 Collated PDFs
- June 2020 monthly pdf summaries.
- REST API Generation Thingifier
- Sample APIs generated from the Thingifier available as standalone applications.
- New Test Pages and Example WebDriver Code
- Description of the new example WebDriver code and the new testpages written recently.
- Looking for code based proxies
- I went looking for code based HTTP Proxies and chose BrowserMobProxy.