Building an automation project, some error handling

As I mentioned, I write automation code in phases, the same process that is done for editing photos in Photoshop or writing a novel. Photos are edited in layers. Each layer adds a small change to the overall image.

Novels start with an outline. The outline is then turned into chapters. The chapters are broken down into scenes. A scene may only be a few paragraphs. Those are then connected to the next scene, which might only be a couple of paragraphs.

Automation follows a similar process. I pick a set of pages I want to work with. They might be relevant for a production smoke test. Or they might be the more important or more frequently used sections. Either way, my goal isn't to write automation for the entire site. The goal is to pick important or high traffic areas and focus on those first.

Once inside Katalon, the goal of the first phase is to map out the objects I want to work with. Which input fields and buttons will I use, and where will the results display? If that's in a table, I get that definition and try to parametrize it, such as using ({row} and ){column}.

I then write some proof concept code that confirms these definitions are correct. If I enter some criteria, do I get a result back? If I search for Bill Smith, is Bill Smith in my list? If I search for Arizona as a state, do my results contain AZ?

Writing this small, quick code, lets me get through multiple pages in a short amount of time. Writing automation code is not my full time job. It's not even part of the sprint.

I still have to work on other tasks, most of which are testing manually. My goal is to make as much progress across the site as I can in the short time I have allotted. At the end of the day, literally, I want code that I can use.

This also lets me touch multiple pages and see commonalities. Once I write a section to enter text and verify the results, I can use that same code on multiple pages. And in fact I did.

I created a basic structure for entering search criteria and validating it in a table. Since many of the pages followed a similar pattern, from one small block of code, I was able to generate half a dozens tests with minimum code change.

Now that this phase is complete, the focus becomes more code centric. The first order of business is to add some error handling, improved timing, marking errors, logging information, and additional validation points.

For example:

What should happen if a value is blank? Is that a failure? Is that an error? Can the test move on?
What happens if an object doesn't appear?
What happens if the page doesn't load?
What should happen if there are no results?
Do errors merely need to be logged or should the test be marked as failed?
What happens if data takes longer to appear than expected?

This starts to give the tests more usability. Yes, they are still rather static, as variables have hardcoded values. That will change soon. But, once this portion has been done, I have an improved test suite that can be used to confirm some basic data points, and it has some ability to adjust to conditions and note errors. For example, if the first name is missing, that's bad. If the phone number is missing, that may not be an issue.

Once this phase is complete, it will be then be time to move into reading and validating data. That will also be the point where Keywords are developed and the tests are made more dynamic.

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • Enter dates into a date picker for Chrome and Firefox (1)
    • Prasanna: Hello, How to enter a previous month FIRST day and LAST day from the system date. Thanks Prasanna
  • How To Disable the Quicken Registration Prompt (31)
    • Juani: Hi, I have a registered Quicken 2016 and now my files are being held hostage by Intuit, cannot log in with my ID unless I upgrade therefore buy a subscription, I need to access my files, please HELP. Thanks
    • David: A BIG Thank you! I regularly reinstall Windows OS’s using different hardware configs. In short, Quicken 2011 (it’s March of 2020 as I write this) has been a program I’ve been very happy with and continue to use....
    • Karen L: Today I rang Reckon Australia again, got a different guy and he talked me through the process of getting me a new product key to enter since I already had the licence and it had been extended. Reckon have only extended it by 1...
    • Karen L: I have Australian Quicken 2008 on Windows 8.1. It keeps asking me to renew my licence which Reckon did for me however the activation won’t work. I tried this to disable the registration prompt however it did not stop the...
  • Building Relationships with Developers (1)
    • Carlos Herrera: Ah yes. I have a team of software developers and it is genuinely so hard to keep them in the loop during projects. Though the more we work the better the communication becomes and we go from a trail and error process to a...
  • Integrating DevonAgent Pro with Alfred (1)
    • J. Garr: Beautiful, sweet, and simple. I love it; thanks for posting this solution.
  • Round and Round with the For..Next in Katalon Studio (1)
    • Sweet Ophaline Labador: Hello can you help me how to loop this scenario. Checking the elements is just the same. I want to check that the following function is available in www.siacargo.com: Track Shipment – clicking on this can...
  • Parsing Strings in Katalon – Split, Substring and Readlines (6)
    • Don Pedro: String tempText=”Date Month January. Revenue $1,355,721.00″ println(tempText.split(“ \$”)[1]) You need to escape the $ with \$ The [1] on the split captures characters on the right of the split [0]...
    • Prasad: Hi, I need to get the substring from the below string ‘Date Month January. Revenue $1,355,721.00’ I want to extract text after $ value. Please help Thank you
  • Working with Dates and Date Formatting in Katalon Studio (15)
    • Sangeethaa: How to get previous day’s date(Yesterday’s date)? Actually I was using today.previous() before,it was working fine till today morning.Now its not retrieving right date. Can anyone please guide me on this.
    • Don Pedro: That could be a little tricky. First, is the text/format always going to be the same? You will need to do some parsing. Separate the first but of text at 2019. After that, split the text again to get rid of Central Standard...
    • Don Pedro: It should be of the same Date type as today. You could then do some calendar trickery with Calendar /*Calendar c = Calendar.getInstance(); //c.set(Calendar.MONTH, 1) //Set the month, 0=January, 11=December println...
  • Output status messages and test information by writing to the Log File Viewer in Katalon Studio (6)
    • Saranya: Good One. Could you plz share link to access all your katalon related blogs. ThankQ
    • Rodrigo Calabretta: I’m using the KeywordUtil.markFailed or KeywordUtil.markError and my test stops is being shown as Error and If I use in the @afterTestCase the testCaseContext.getTestCaseSta tus() to show the status test case...