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 […]

QA Regression Suite coming together

My automation project is progressing faster than I expected. I added the code to check for results, added code to count rows, and removed all the hard coded values I put in place. The QA Execution Profile is now in place with the correct data values for that environment. I even swapped some of the String values for Lists so multiple values could be checked in a single pass. I cleaned up the navigation code so the tests can either click the links they need, or they navigate to the correct location then call each other in the proper order. I have just put together the QA Regression test suite and have been testing it against the site. It contains 21 tests, chained together, that run from start to finish. With everything running together, I made a few adjustments to my data values, picked some better customers to work with, added a couple of checks to make sure objects were […]