Please let us know what you are using Katalon Studio for?
I build test cases for a company project at work
How would your work be affected if this issue has not been resolved?
I can continue my job, resolving this ticket can boost my performance
Steps to reproduce
manual view doesn’t appropriately handle inserting custom keywords with multiple signatures. e.g. i wrote a function generateDatetimeString() which takes two forms:
public static String generateDatetimeString(String format)
public static String generateDatetimeString(String format, int daysOffset)
so you can either create a datetime (for inserting into forms) either just for today or, for example, a week in the future. unfortunately, katalon will show you both options in Manual view:
but when you select one, it’ll only ever insert the first version:
this is incredibly frustrating both for me and my less code-savvy colleagues who rely on my functions to build test cases. because of this bug, i have to create a ridiculous number of functions with ridiculous names that point to specific signatures of my other functions like so:
@Keyword
public static String generateDatetimeStringForToday(String format) {
return generateDatetimeString(format)
}
this ends up cluttering the namespace and making an already bulky library even harder to read through with even more function names to memorize. and it just looks/feels tacky, both for my library and katalon studio itself.
package shaun
import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
public class CustomKeyword {
@Keyword
public static String generateDatetimeString(String format,
int daysOffset = 1) {
println "generateDatetimeString(" + format + "," + daysOffset + ")"
}
}
consequently you can not set value to the 2nd argument daysOffset.
Now, let’s discuss.
In the class source, you wrote 2 methods. On the other hand, I wrote only 1 method with parameter with default value.
I expected only 1 line of shaun.CustomeKeyword.generateDatetimeString to appear in the menu. But in fact 2 lines appeared. This is inconvenient, I do not like this at all. Anyway, it works as is…
When I select either of 2 lines In the menu, KS only ever insert the version of method signature with 2nd argument daysOffset.
This is better for you, isn’t it? I suppose you could find a way to decrease the number of the method names of your Custom Keyword.
I expected Katalon Studio to respect my code:
.... int daysOffset=1) {
I wanted KS to take 1 as the default value in the GUI.
However I found KS sets 0 as default. KS does not respect my code.
It’s unfortunate. I see that the Manual mode is not every much cultivated.
well, i suppose this wasn’t a grand example i could just set daysOffset to 0, and the effect is the same. but some functions have versions that take, for example, a String parameter instead of an int or a WebElement instead of a TestObject, and the difference in parameter type results in important differences in behavior. in those cases, it’s literally impossible for anyone using manual mode to take advantage of the multiple signatures which is necessary for utilizing different features.
as a perhaps better example, i’ve got this function that sets the value of a cell in a table which takes two forms:
setTableCellValue(String tableName, String columnName, int row, String value)
setTableCellValue(String tableName, int column, int row, String value)
notice one uses an int to identify the column by its position, and the other uses a String to identify a column by its header. some columns don’t have headers, so you have to identify them by the column position using the 2nd signature. but since katalon only ever inserts the first signature, non-coders who use manual mode simply cannot access the function they need to access, and i have to write a whole new function with an obnoxious name like setTableCellValueByName()
I understand your description. I would agree that the Manual mode of Katalon Studio needs more of brush-ups.
I am afraid, Katalon team would NOT notice this issue because, as Jass wrote, this User Forum is not a gateway to Katalon’s support service.
Even if someone of Katalon notice this, I guess, they would not take this too seriously. Why? — as far as I am aware since its service launch, nobody has ever pointed out what you point out now. They would not be able to appreciate its significance.
If you want Katlaon team to make any action to this, you should “submit a ticket” at https://support.katalon.com/hc/en-us
and call for their serious response.
I am not a Katalon man, and I do not use Manual mode at all. So I am no longer interested in this topic.
Here I see a contradiction at the design level. I think that the KS Manual mode is designed to hide the details of parameters (name, data type) to present a simplified view of keywords for non-coders who tend to fear signature details. But now you have created a lot of signatures. I do not think that your idea will fit into the Manual mode.
I do actually have a function like that as well But sometimes you do need to target a specific cell. If possible, people prefer specifying a cell by column name + row, but some of our columns lack names so you have to use the column index.
I’ve spent hours showing people how to use Script view. And I’ve got years of pretty successful tutoring under my belt, so I have a modicum of confidence in my teaching abilities Some people just don’t want to learn how to code, even at a super simplistic level.
If that were the case, then why do they show all of the signatures to the users? That’s a contradiction If you want to hide the finer details of extra signatures from users, then you should actually hide all except the first signature. If the goal is to keep confusion to a minimum, showing a user multiple signatures with different javadocs, and then inserting a signature other than the one they clicked on is not how you accomplish that. The non-coders on my team have the ability to distinguish between two functions with the same name but with different javadocs and which take very obviously different but clearly named parameters. The only confusing part for them (and me) was why Katalon didn’t show those parameters in the Input popup after they selected the correct signature.
I think that the Manual mode is still to be refined.
I guess that nobody , other than you @shaun.mitchell, has ever devoted much time creating so many custom keywords and tried to list them nicely in the Manual mode menu. Most people use the built-in keywords only and are contented.
I do not use Manual mode at all, and am not interested in it.