-
Notifications
You must be signed in to change notification settings - Fork 1
Home
A Weird name right.Not really . It was once a part of India. A exotic valley which was once a part of the kingdom of Manipur. Obviously it is not the only reason I named this framework as kabo. While naming I am following Anjuta's path, the famous Gnome IDE(https://developer.gnome.org/anjuta-faqs/stable/general-name.html.en) My motive is to make people's life a bit easier.
It will be a pain killer while automating a UI project. Hey folks , you do not have to worry about maintaining bulk excel files for hybrid automation framework. kabo will do it for you using Behavior-driven development approach. Automation does not mean writing ugly driver.findElement code everywhere in the test scripts. It should be well organized so that maintenance become easy.
From now on forget about creating webDriver instances , forget about the pain you have endured to handles windows. Your only concentration should be on business logic or we call the core functionality.
From now on start writing your test cases in a format everyone understand. Is not it fabulous(read in abish mathew's accent) if you start writing your test cases like below:
### Test case: test.story
Meta:
Narrative:
As a user
I want to perform an action
So that I can achieve a business goal
Scenario: scenario description
Given something
When I do this
Then that should happen
And That should happen too.
### Step definition class :
Write your Step Definition class like below
import com.kabo.core.behavior.StepDefinition;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
public class GivenStepDefination implements StepDefinition{
@Given("something")
public void something(){
System.out.println("something");
}
@When("I do this")
public void do_this(){
System.out.println("Do this");
}
@Then("that should happened")
public void assert_what_happened(){
System.out.println("that should happened");
}
@Then("That should happen too.")
public void oh_some_more_assertion(){
System.out.println("That should happen too");
}
}
and run them as normal TestNG test as below
### TestNG test case class
import com.kabo.core.behavior.StepDefinition;
import com.kabo.core.behavior.TestRunner;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class SampleTestCase {
TestRunner testRunner;
@BeforeTest
public void before_test(){
testRunner=new TestRunner();
}
@Test
public void my_first_kabo_test(){
/*500 is the configurable story time out*/
StepDefinition definition=new GivenStepDefination();
testRunner.runTests(500,definition);
}
}
kabo will bring the power of JBehave and TestNg right to your IDE with just a maven dependency .
Just start writing your story as
Given a positive scenario
or
Given a negative scenario
kabo will automatically set up the things for you.
Okay, if you do not want to write TestNG test classes, then you can run your test cases by writing a PSVM program like below:
import com.kabo.core.behavior.StepDefinition;
import com.kabo.core.behavior.TestRunner;
public class SampleTestCase {
public static void main(String[]args){
TestRunner testRunner=new TestRunner();
/*For example your sign up module*/
StepDefinition signup=new signupSteps();
/*For example your login module */
StepDefinition login=new loginSteps();
testRunner.runTests(500,signupSteps, loginSteps);
}
}
Yes, you can write sophisticated report (forget your ugly testNG report) with just a simple method call.
Report.write( String testName, String des, boolean isStatus, boolean isNegative)
Test report with name kabo.html will be auto generated as below:
Forget about old techniques. Just create a file kabo.properties in the project root directory and then copy paste the below. voila! you are good to go without writing a single line of code. kabo will take care rest of the things for you. Smart enough?
#kabo automation framework
#Do Not Change the below Keys. Change the value as per your choice
BROWSER=chrome
PLATFORM=Mac OS
PROCESSOR=64
PATH_TO_DRIVER=some path to chromedriver or whatever driver we are going to use
# ------------------------
Hmm, Only selenium. But from second release onwards, will provide support for API automation and native mobile app automation and Aplitools eye too look after your UI, out of the box saucelab or browserstack integration.
So stay updated, for the initial version release .
To all the QA folks , Always believe something magical is about to happen.