- Write test scripts using English-like statements.
- NO coding required to implement those statements.
- Not dependent on HTML IDs or XPaths.
- Write the same way you would instruct another human being sitting in front of the browser.
- NOT like Cucumber.
- NOT like Selenium IDE.
- You can:
- Do your initial dev test in REPL mode.
- Save the statements as a script.
- Share with QA to expand the scenarios.
- Even share with the product manager.
First, you need:
- Java JDK (download)
- Google Chrome version 66 or higher (download)
- Node.js version 12 or higher (download)
Run on a terminal window (on Linux, you may need sudo
)
$ npm install -g kasaya
(Installation might take a few minutes)
Found a bug? Please let us know. Kasaya is still early beta, but we want to improve.
$ kasaya # browser window will open
Kasāya> open "google.com" # executed in browser as you type
Kasāya> type "cat"
Kasāya> press enter
Kasāya> read "Lifespan: ${min} – ${max} years" near "Family"
Kasāya> check if $max is "20"
$ vi cat.kasaya
~~~~
start
# verify that the maximum lifespan of a cat according to google is 20 years
open "google.com"
type "cat"
press enter
read "Lifespan: ${min} – ${max} years" near "Family"
check if $max is "20"
end
~~~
:wq
$ kasaya cat.kasaya
TODO: Improve this section
Kasaya's grammar is based on JARVIS, which is a rudimentary natural language tool based on pattern matching. Targeted for test automation, it currently lacks certain basic programming language features such as conditionals and loops.
Kasaya's statements are made up of phrases rather than keywords and functions. Phrases can either be built in, or macro-based. Arguments can be placed anywhere within the phrase.
Kasaya supports the following block level structures:
in this context
- declare constants and imports for the file contexthow to <macro phrase>
- declares a macrostart <run block>
- statements within run blocks will be executed immediately
- Extract a value within a pattern into a variable:
"Hello ${name}"
- Variable access within a phrase:
$name
- Variable assignment:
set $name to "Something else"
- Constant declaration within context block:
NAME is "World"
Here are some examples of the most commonly used commands:
open "foo.com"
click "Sign In"
click "Username"
type "[email protected]"
press tab
type "12345"
click "Confirm"
read "You are logged in as ${username}" near "Success"
check if $username is "[email protected]"
read ${sender} from row "Test email" column "Sender"
print $sender
TODO: Improve this section
Get Visual Studio Code extension for Kasāya scripting from here
We noticed that many a test tool is named after brewed drinks ("Mocha", "Chai", "Espresso"). "Kasaya" (pronounced Kuh-SAA-yuh) is also a brewed drink -- it is an Ayurvedic medicinal drink popular is Sri Lanka (better known in India as https://en.wikipedia.org/wiki/Kashayam).
The idea behind Kasaya is that, if we're able to verbally instruct a human being to run a UI test without referring to DOM elements, XPATHs or HTML IDs, it should be able to do the same with a machine. Unlike in some natural language test automation tools, you don't have to write any functions to help resolve statements to HTML IDs or XPATHs. Kasaya works out-of-the-box.
No. It's based on clever but simple heuristics that attempt to mimic how human beings look at a screen and identify visual elements.
Kasaya was envisioned and developed entirely by the folks at Sysco LABS, Sri Lanka.
As of this writing (Jan 2020), Kasaya is in public beta, which means while all the basics work, there's a lot to be ironed out before we can get to version 1.0.
Eventually, yes! For now, please be patient with us -- we don't yet have a dedicated developer who can work with the community. But we're trying to get there, stay tuned!
But if you find bugs, or have great ideas, let us know!
Great! Please report it on our issue tracker, with reproduction steps: https://github.com/syscolabs/kasaya/issues