Katalon Compact Utility


This is a companion discussion topic for the original entry at https://docs.katalon.com/katalon-studio/docs/katalon-compact-utility.html

Katalon Compact Utility is a huge leap forward for the many people who are developing tests using a managed browser. Thank you!

However, putting these parameters in the project locks the test project into running on a particular machine by a particular user. In our environment, tests will be developed by a given user, maintained by any number of different users, and run using KRE on a Jenkins engine.

It makes more sense to me to put these settings in the Katalon configuration. That way, they affect all test runs for a given machine/user (which is surely a desirable effect), and also do not tie the test project to a particular machine/logon.

Is there any way to do that?

How about using Katalon Docker Image + KRE?

https://docs.katalon.com/katalon-studio/docs/docker.html

Based on the image provided by Katalon, you can further configure it for your environment and build a customised Docker image for your own use.

Yes, you would be able to make the “similar” happen. You can put all settings in your Docker image and everyone of your team + CI server can share it.


I am not sure what sort of Katalon license is required if your team members ( e.g, 3 people) run the image on their own PCs using Docker Desktop on Windows individually. Perhaps you need the exact number of KRE licenses equal to the team members.

@duyluong

I would wait for your input.


I stroke out this, as I was wrong.

29 Dec 2021

@kazurayam

In our environment, we develop Katalon test projects on local Windows machines using the Community Edition.

We run these projects on Linux machines using Jenkins to invoke the licensed KREs.

Our Windows machines are locked down, and so require Katalon Compact Utility. However, the Linux build machines do not require Katalon Compact Utility, and we really don’t want to have to customize our Chrome test engine browser in order to make the tests work.

So, we need to use Katalon Compact Utility on our unlicensed test developer machines, but not on our licensed KRE machines. I don’t think that Docker will help us with that.

(Also, buying more licenses is a “no go”, as we are a Federal Government agency with tight budget controls.)

@duyluong and @kazurayam: What we need is a command-line argument for Katalon Studio/Katalon Runtime Engine which drives the use of either the unpacked extension or Katalon Compact Utility, depending on the setting. Is there anything like that already?

@duyluong

Does “Katalon Compact Utility” require a paid license of Katalon Studio Enterprise?

I don’t think so. As far as I read the doc, it seems to me that the utility is available for every Chrome users in the world free of charge regardless he/she uses Katalon Studio or not at all. Those who do not have Katalon Studio can install Katalon Compact Utility into Chrome browser but will never be benefited by it.

This does not make good sense to me.

In the doc, it describes a condition:

Before downloading and installing this extension, make sure you are not using the Chrome profile you intend to use for the features at that time.

If your team has 10 members who work on Windows + Chrome + KS community edition, 10 members have to create manually “a Chrome profile” (e.g., profile named “Katalon1”) with which Katalon Studio works on.

I am 100% sure that it is impossible for Katalon Studio with “a command-line argument” to dynamically create the Chrome profile automatically for your 10 members on each Windows boxes. Only Chrome can create a Chrome profile, which is a black magic. No other software can create it.


@christopher.shubert

I suppose (but not tested at all), you would want to

0. decide how you want to name the Chrome profile to use in the team in common. Say “Katalon1” for example.
1. tell your 10 people to create a Chrome profile “Katalon1” on each Windows PC manually
2. tell them install the Katalon Compact Utility into their Chrome browser on their PC
3. want to create Chrome profile “Katalon1” on Linux machine as well
4. want to install Katalon Compact Utility into the Chrome browser on Linux box
5. want to configure your project, as the doc describes, so that the project uses the Chrome profile “Katalon1”.
6. want to save the project into Git and share it by the team.

Then your 10 people will become able to use Recorder, Spy and SmartWait on the restricted Chrome on the companies PCs. This set-up is required only once. You do not have to repeat it often.

I find no payable license needed, no command line option is wanted. I was wrong. “Docker” has nothing to do with this case. Now I realized that.


30 Dec 2021

I stoke out this, because I was wrong.
I will explain how I was wrong later.

On Windows machine, you can setup the same configuration for all engineers with the default Chrome profile as kazu’s suggestions

To deal with Linux environment, we can customize the Desired Capabilities in Test Listener like this:

import com.kms.katalon.core.annotation.BeforeTestSuite
import com.kms.katalon.core.configuration.RunConfiguration
import com.kms.katalon.core.context.TestSuiteContext
import com.kms.katalon.core.webui.util.OSUtil

class NewTestListener {
	/**
	 * Executes before every test suite starts.
	 * @param testSuiteContext: related information of the executed test suite.
	 */
	@BeforeTestSuite
	def sampleBeforeTestSuite(TestSuiteContext testSuiteContext) {
		if (OSUtil.isUnix()) {
			RunConfiguration.setWebDriverPreferencesProperty('args', [])
		}
	}
}

In this way, KS/KRE will use the profile in desired capabilities in the project settings on Windows and won’t use the profile on Linux.

Install “Katalon Compact Utility” and use it in Katalon Studio desired capabilities settings don’t require Katalon Studio Enterprise license.

@duyluong - this looks really plausible. I will give it a try. Thanks!

@duyluong, @kazurayam - One other thing worth mentioning:

In our organization, as in many I suspect, Google Chrome is managed. This is why Katalon Compact Utility is so important to us. But this also means that we cannot create alternate profiles in our browser.

So, anything we do with Chrome/Katalon on our local machines will have to happen using the primary Chrome profile. This makes things a little weird at times, but Chrome is not our organization’s de facto browser (Edge is), so we should be able to use Katalon Compact Utility all right.

Well administrated. I am impressed. This would effectively make “Katalon Compact Utility” not applicable to this organisation.

@duyluong what do you think?

I was wrong. I need to correct what I wrote in the previous post.

https://docs.katalon.com/katalon-studio/docs/katalon-compact-utility.html#configuring-and-using-the-compact-utility-with-chrome-profile shows how you are supposed to setup the Desired Capability in your Katalon project as

where you are supposed to change profile-directory=Default to profile-directory=XXXXX where XXXXX is something appropriate to the Chrome you have.

On my machine, I have a Chrome profile with name “Katalon1”. Then how should I write profile-directory=XXXXX?

I opened Chrome, changed to the profile Katalon1, navigated to chrome://vesion. I got the following display.

Here I found that the profile Katalon1 is mapped to the profile folder named Profile 13. Therefore I should write

profile-directory=Profile 13

In my previous post, I wrote

  1. want to configure your project, as the doc describes, so that the project uses the Chrome profile “Katalon1”.

I was wrong. I can not configure the project to use Chrome profile “Katalon1”. Rather, I am asked to find out to which folder the “Katalon1” profile is mapped, and edit the Desired Capability setting of the project manually.

In my case, the profile “Katalon1” is mapped to a folder name “Profile 13”. But Alice may find “Katalon1” is mapped to a folder “Profile 2”. Bob may find “Katalon1” is mappped to a folder “Profile 3”. This mapping is done by Chrome internally just accidentally.

I can imagine that I ask 10 people in my team to create Chrome profile “Katalon1”; and find out to which folder the profile is mapped. They will edit the “profile-directory=XXXXX” setting of Desired Capability of the project so that it matches the profile path actually there.

Caution! They should not commit this changes to the git repository, they should never push it to the shared remote repository. If a man does it, the commit will bring a chaos to all other members.

I am afraid, the feature “Katalon Compact Utility” of today would cause more troubles for teams than help.

I have an idea how to improve KCU.

I think “Katalon Compact Utility” should NOT ask users to re-write “profile-directory=Default” manually. Rather, Katalon Studio GUI should have a dedicated Form which asks users to specify which Chrome profile to use (“Katalon1” for example) for Katalo Compact utility. And system (Katalon Studio? KCU?) should find out to which folder the profile is mapped to.

For example, on my machine, the system would resolve a Chrome profile “Katalon1” to the “Profile 13” folder behind the scene. On Alice’s machine, it would resolved the profile to the “Profile 2” folder. On Bob’s machine, it will resolve the profile to the “Profile 3” folder.


Thus I wrote, but I think it is a bit difficult to implement.

Katalon Studio can’t do it at the configuration time. Yes, KS may map a profile “Katalon1” to the folder “Profile 13” at the time when user configured it. But later user may delete the “Katalon1” profile and re-create it; then “Katalon1” might be mapped tot the folder “Profile 14”.

Katalon Compact Utility can’t do the mapping because it works inside Chrome browser in security sandbox; it can not read the local disk.

So, the only way would be Katalon Studio to perform the resolution dynamically when Spy + Recorder is invoked.

A big deal. Is it worth trying? — I personally do not need KCU at all as I rarely use Spy + Recorder+SmartWait.

@christopher.shubert
KCU is a combination Katalon Web Spy, Katalon Record Utility and SmartWait that helps to run Katalon Studio/Selenium tests on managed Chrome.

As we know that, ChromeDriver will launch to browser with anonymous profile by default. All the extensions will be set as unpacked extensions that will be blocked by administrator. Hence, we need a dedicated profile that already installed KCU to load all packed extensions that won’t be blocked by administrator.

The alternative way to use Spy and Record mode on Windows is to use Katalon Recorder with active browser mode.

In the test execution, KCU should be useful if you need Katalon SmartWait to prevent test falkyness. If SmartWait is not really important to your test design, you don’t need to use KCU at this time.

@duyluong Our organization has approved the KCU extension, so we are able to install and enable it in the default profile. I have tested this on my machine, and it seems to work (although I need to verify it with other test developers as well).

1 Like

Hello,
our organization has not yet approved the plugin so we are stuck for the launch of our tests. Can you tell me if the plugin has access to user data? if yes, what is this data? Is there a risk of compromise?
thanks

Can you please send me a downloadable link for the Katalon Compact Utility for windows and linux (maybe they are located in a Git location) so I can install them on our Onprem closed network which does not have access to the internet, I will need to download these executables and then use our internal process to get the files/executables onto our closed network. Clicking the Add to Chrome button on the Katalon Compact Utility page does not help me because that installs to Chrome on the machine I’m on, I need the executable so I can copy it to a different network and install it on the Chrome browser on the other network.

@Stephanie.LovingJone you can try the Extension Source Downloader to download whatever extension from webstore:

Thanks sooo much @anon46315158 , I was able to successfully download and unzip the file for the Katalon Compact Utility, wooo hooo, and then upload to my internal server, but now is the silly question, what do I click on next to actually install it as a Chrome extension, maybe I’m missing that instruction somewhere in the extracted files, but I’m not finding it :frowning: can you point me in the right direction please and thank you for your help in advance.

for the next step, google may be your friend, how to intall such (or search on the forum how this can be done through selenium)