Background
I have a Katalon Studio project (an application of the VisualTestingInKatalonStudio framework) with a lot of Execution Properties. See the following Screenshot for example.
You can see 11 profiles but in fact I have more than 20. I deleted half of them before taking this screenshot.
Why do I have so many Profiles? Because my test suite collection accepts 5 GlobalVariables as parameters, each of them have wide range of values (2, 4, 20, 50). When I want to run my test suite collection, I often need to create a new combination of GlobalVariable values.
How can I compose a combination of GlobalVariable values? There is only one method — create a new Profile. No other approach I know.
At the moment, this project is in the development stage yet and only one man (me) works on it. However sooner or later, I want to make this project shared via Git remote repository by my team — 14 people.
Problem to solve
When this project is shared by my team, the Profile directory will soon become messy.
The team members would want to create combinations of GlobalVariable values for their own use. The number of combination will burst. Some hundreds of Profiles will be created in a directory. Imagine, 300 entries of Execution Properties listed under the Profile
node without sub-tree, that is unmanageable.
What is worse is that it is impossible to safely DELETE a Profile because we can not (easily) tell who in our team created it. We can not (easily) determine if a Profile is used by test or not. So the number of Profiles will continue increasing. It is terrible.
Solution proposed
I should be minimalistic. I want to introduce segmentation of Profiles by sub-folder tree. For example like this:
.
└── Profiles
├── CURA
│ ├── DevelopmentEnv
│ └── ProductionEnv
├── HP
│ ├── base
│ │ ├── DevelopmentEnv_category0
│ │ ├── DevelopmentEnv_category1
│ │ ├── DevelopmentEnv_category2
│ │ ├── DevelopmentEnv_category3
│ │ ├── ProductionEnv_category0
│ │ ├── ProductionEnv_category1
│ │ ├── ProductionEnv_category2
│ │ ├── ProductionEnv_category3
│ │ ├── StagingEnv_category0
│ │ ├── StagingEnv_category1
│ │ ├── StagingEnv_category2
│ │ └── StagingEnv_category3
│ ├── brandon_hein
│ ├── kazurayam
│ │ ├── DevelopmentEnv_category1_XXXbank_q.exeOnly
│ │ ├── ProductionEnv_category0_XXXXCompany_quotes_saveHTML_debug
│ │ ├── ProductionEnv_category0_YYYYEnterprise_search.exe_saveHML
│ │ ├── ProductionEnv_category0_allServices_q.exeOnly
│ │ └── ProductionEnv_category2_GOF
│ ├── mate_mrse
│ └── ruth
└── default
It is important that sub-folders can be named with any (non-latin) UNICODE characters