Tracking the next phase of my automation development with Project Office

I picked up Project Office in a recent BundleHunt offer. Not to be confused with Microsoft Project, part of Office, Project Office is a standalone project management tool for the Mac by DK Consulting. It looks and works in a similar fashion to MS Project, but is more streamlined, works locally, and costs far less. Nor is it subscription based. I’ve been looking for the right set of tasks to use it with, and this automation project seems like a great candidate. To get started, I have listed the objectives I would like to complete for this next phase. For each task, I have entered the amount of time I expect it to take. This is a good exercise on it’s own. I listed out the individual tasks, and broke down several other topics into their components. Here are a couple of examples of what needs to be completed. I need to create Execution Profiles – QA – Prod Custom […]

First automation pass complete

The first pass of automation for the site is now complete. At this juncture I have been able to make framework tests for the major pieces of functionality. They are still somewhat hardcoded, and not every part of the site has automation, but the bulk of the work is complete. The objects have been created, and there is working code to verify functionality. For example, data can be entered into forms and that information can be verified in the table of results. This has been repeated across multiple pages. There are currently 21 tests, which is a rate of 1 test case completed per day since I started. They are quite straightforward, but perform the same actions I would take if verifying the pages manually. The goal was to get the automation up and running and build out the objects I am most interested in. And for that reason, several pages have been ignored at this point. They are either […]

Comparing Strings Not in the Same Order

Here is another situation that needed to be solved. I want to compare the name of a company from one page, to the company name that appears on their profile to make sure they are the same. The problem comes in because the names aren't listed the same way in both places. On the first page, the name can be listed as: Good, Johnny B On the next page, it can be listed as: Johnny B. Good However, that's not always the case. In some cases the full company name can be listed in both places such as: Amalgamated Beverage Coop Reversing the order or switching around the last word isn't always correct. So the question is, how can these two strings be compared even though they aren't in the same order? Built in functions like equal, contains, matches, and compareTo won't work correctly. If you go searching, there are several possible solutions. Some look relatively reliable, while others look […]

Passing Katalon Objects with Parameters to Custom Keywords

Here is a situation I ran into yesterday with the project I'm currently putting together. After doing a search, I need to check the number of results returned before I read any values from the table. In this instance, the table does not appear if there are no results. So what I need to do is check for the existence of the table. Within Katalon itself, the definition I use refers to a row and column of the table: 'Business Locations/table-Business Locations', [('row') : 2, ('column') : 2])) This works fine and I can read any of the cells I need. I can also reference this within the test itself using the familiar WebUI.getText(findTestObject('Business Locations/table-Business Locations', [('row') : 2, ('column') : 2])) Since all the tables work the same way, I set about making a Custom Keyword, to perform this action across the site. The problem comes in when I need to pass that object to the Custom Keyword. By […]

My Automation Progress So Far

It has been an impressive and productive two weeks for working on this new project. As it stands, I have about 12 test cases completed. I have kept them small and specific and so far have been able to complete 1 to 2 test cases per day. Again, these aren't complete, but cover basic usage and functionality. I will keep refining them as I move forward and build in more error checking code as needed. These are framework tests, but they are proving to be valuable. While not the best gauge, my code base is a little over 1500 lines of code. That makes each test a little over 100 lines each, which is a decent start. Again, my goal at this phase is to write as many tests as possible, touching multiple pages. I don't want a one giant, monolithic test that only works on one page. I want to confirm that multiple pages are accessible and at least […]