Friday, August 28, 2015

Jmeter : Running Selenium Scripts in Jmeter

Running Selenium Scripts in Jmeter

Pre -Req :
  1. Use latest Jmeter
  2. Goto link "http://jmeter-plugins.org/" and copy paste all the jars in "your_jmeter/lib" folder.
  3. Go to lib folder and delete files which has copies of older versions 
    1. httpclient-4.2.6.jar (delect this jar)
    2. httpclient-4.3.1.jar
    3. httpcore-4.2.5.jar (delect this jar)
    4. httpcore-4.3.jar
  4.  

Steps
  1. Open Eclipse
  2. Create new project
  3.  Add Selenium libraries to your project
  4. Add a class file in project> src  (ex: Jtest)
  5. Add the below code. 
public class Jtest {
    WebDriver driver;
   
    @Before
    public void setUp(){
        driver=new FirefoxDriver();
        System.out.println("before");
    }
    @Test
    public void test_meel(){
        driver.get("http://google.com");
    }   
    @After
    public void tearDown(){
        driver.close();
        System.out.println("after");
    }
}


Note : 
Junit Annotations are very important .
setUp() , tearDown() - method names should be exact. 

6. Save and Run (To Add Junit library ie., project>rt ck properties>Libraries>Add Library>Junit>select junit4>Finish).

7. Once It has Run successfully , project>rt ck>export>Select JAR file>Do as below
(Export Destination = "your_Jmeter/lib")



 
 8. Click Finish

 9.Open Jmeter
10.Add Thread groups
11. Thread groups>Junit Sampler
12.Thread groups> View Results Tree
13. goto Junit Request> Class name 







Output :
Result is same as if you Run seleniume script ie., Browser will open and close ,simultaneously performance is captured .


Tips :
Keep a watch on compiler version in eclipse .As currently Jmeter can recognize only 1.6 so your code needs to be compiled with 1.6 as well otherwise the class name and method will not show up in Jmeter.



Ref:
http://artoftesting.com/performanceTesting/jmeterJunit.html
http://stackoverflow.com/questions/29200736/jmeter-and-webdriver-set-do-not-work
http://jmetertips.blogspot.in/
http://pro-programmers.blogspot.in/2009/06/testing-junit-cases-in-jmeter-basic.html
http://jmetertips.blogspot.in/2009/07/running-junit-cases-with-jmeterbasic.html
http://www.javacodegeeks.com/2014/11/jmeter-tutorial-load-testing.html

Thursday, August 27, 2015

Java : Generics

Generics



If you declare a method to take ArrayList<Animal> it can take ONLY an ArrayList<Animal>, not ArrayList<Dog> .To avoid this we use generics :

 ie.,Use ArrayList<? extends Animal> instead of ArrayList<Animal> 

(Animal is parent class)

Note : But this is not required if user is sending arrays[],


Example :

public class generics {

    public static void main(String[] args) {
       
        ArrayList<Animal> A=new ArrayList<Animal>();
        A.add(new Animal());

        ArrayList<dog> B=new ArrayList<dog>();
        B.add(new dog());
        B.add(new dog());

        System.out.println(new generics().cal(B));
        System.out.println(new generics().cal(A));
    }
       
//    try ArrayList<Animal>-------instead of-------- ArrayList<? extends Animal>
    public int cal( ArrayList<? extends Animal> A ){       
        return A.size();
    }
}

class Animal{
    private boolean wild;

    public void set_wild(boolean wild){
        this.wild=wild;
    }
   
    public boolean get_wild(){
        return this.wild;
    }   
}

class dog extends Animal{
   
    private StringBuffer dog_name=new StringBuffer();
   
    public void set_dogname(String dog_name){
        this.dog_name.append(dog_name);
    }
}


Output (ArrayList<? extends Animal>) :
1
2

Output (ArrayList<Animal>)
Error