Signing up for the Katalon Webinars

If you haven't already done so, now is great time to create an account, download Katalon Studio and tune in for their Katalon webinars. Over the past couple of months they have been hosting sessions related to new features, tutorials, and roadmaps on what's new with Katalon and new features coming in the future. The feature set for Katalon continues to grow, even offering some OS automation. The new features for waiting and locating items are also very impressive. My own Katalon project continues to expand with enhancements, updates and new features. I'm at the point of using it for Production smoke tests. It's working very well. Now is a great time to learn some automation skills. Even if you aren't automating an entire site, filling out forms and repeating tests can save you huge amounts of time and make your testing more accurate. The Katalon webinars take place about once a month. I've listened in to several and found […]

Katalon regression project is complete

Good news! My QA automation project is now complete. Well, complete in the sense that I have a full test suite to run against QA and Production. No code project is ever really complete and there is plenty more for me to work on. But, at this point, I have a fully functional project with 30 tests that cover a majority of the functionality. I recently finished the regression suite with all the tests running together. Small adjustments were needed due to some small timing issue, and a few leftover hardcoded values I missed on my previous pass. A few initialization scripts were also written to setup and retrieve data before the test fully got underway. The suite also did it's trial by fire, by being used in a Production smoke test for our last deployment. I'm obviously not going to let it run completely unsupervised, but it did very well. It checked all the data points it was supposed […]

How to get the URL of an image/icon with Katalon

For a test I'm working on, the status of an item in a table was shown using an icon. It is a yellow triangle for warning and a green checkmark for passed. For my test, I need to know which icon is displayed and act accordingly. In order to check that, I ended up reading the URL of the icon and checking which .PNG file is displayed. Like other elements on the page, the image needs to be defined as an object. To define the image, I created an object with this reference: (//td[@id='agreementSigned']/img)[${row}] It's sort of an odd reference since the icon is in a row within a table. But in essence, the /img lets us know we are defining and img object. To get the text or URL of the object, we need to use the GetAttribute command: agreementSigned=WebUI.getAttribute(findTestObject('Business Locations/img-Signed Agreement', [('row') : counter]), 'src') For the above we have the .getAttribute which looks at the definition of […]

Automated Functional Testing

With a pretty solid framework in place, I'm starting to use my automation code for functional testing. I've been able to adapt completed test to accomplish specific goals. For example, I recently made a new test to add new products to our system. Each product has several options that can be configured. I was able to make a test to programmatically add several hundreds new items, in multiple configurations, and get the test done in a single day. Using what I already had, I was able to copy and paste 50% of the code as my base. I then used the standard commands already used to populate the form the way I needed. From my testing, it took me about 30 seconds to populate the form and click the different options. The code does it in 5 seconds. That is also 30 seconds at my best. If I were to have to sit there for 4 hours straight, not only […]

The automation project continues to blossom

My automation project is coming along very nicely. While not a very good gauge of progress, lines of code is how I track what I'm doing. At this point, I have crossed over 3,000 lines of code mark. I'm not writing gibberish, as that doesn't help me. My goal is to write tests as quickly as possible, not necessarily as efficiently as possible. I'm not a dedicated automation engineer, so if I can't write, test, debug and complete the test in a single day, I'm painting myself into a corner. I take a piece of functionality and break it down. I have 4-5 hours to complete whatever it is I'm attempting. If it's not ready to be committed by the end of the day, I need to rethink what I'm doing. Either my task needs to be broken down further, or I'm trying to do something that is more complicated than it needs to be. I don't need to be […]