Question: I am working on selenium project with jenkins + Maven + selenium + TestNG

I am following few questions.

1. Can I execute selenium testcases in Jenkins by launch browsers (Currently it gets executed without browser :( . ), If yes then how can I achive this.
2. Ideally what maven goal is set for build execution.
3. By default test report is saved in projectfolder/target/surefire-reports/ how can I change this location

Answer: 
1. Yes. On linux you need to [setup headless selenium with xvfb](https://gist.github.com/alonisser/11192482) or use [Jenkins xvfb plug-in](https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin). On Windows it can be left "interactive".
2. This is a matter of personal preference, there's no right or wrong way as long as tests get executed. I, for example, prefer to run `clean install` for simplicity and other reasons.
3. Yes, this can be configured using [reportsDirectory](http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#reportsDirectory) and [reportNameSuffix](http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#reportNameSuffix) parameters of the maven-surefire-plugin:

```
<plugins>
    [...]
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
            [...]
            <reportsDirectory>${project.build.directory}/ANOTHERLOCATION</reportsDirectory>
            <reportNameSuffix>MYREPORT</reportNameSuffix>
        </configuration> 

```
Regarding your first question: two other options could be to use [PhantomJS](http://phantomjs.org/), a headless browser, or to use a cloud service that provides browsers through a remote webdriver interface such at [BrowserStack](https://www.browserstack.com) or [SauceLabs](https://saucelabs.com). The advantage of using a cloud service is that you can run your tests on multiple versions of multiple browsers on multiple platforms (Windows, OSX, Linux). When you only run your tests on a local machine, you're restricted to testing on the browser and platform of that local machine.