http://www.softwaretestinghelp.com/maven-project-setup-for-selenium-selenium-tutorial-24/
In our last Selenium tutorial we learned a build tool named as “Apache Ant”. We also broadly discussed its applicability and importance besides the practical approach.
In this Selenium Testing tutorial we will learn Maven – a build automation tool which is distributed under Apache Software Foundation. It is mainly used for java projects. It makes build consistent with other project.
Maven is also used to manage the dependencies. For example if you are using selenium version 2.35 and any later point of time you have to use some other version, then same can be managed easily by Maven. You will find more examples of this later in this chapter. It works very effectively when there is huge number of Jar files with different versions.
What is a build tool?
Build tool is used to setup everything which is required to run your java code independently. This can be applied to your entire java project. It generates source code, compiling code, packaging code to a jar etc. Maven provides a common platform to perform these activities which makes programmer’s life easier while handling huge project.
Maven provides pom.xml which is the core to any project. This is the configuration file where all required information’s are kept. Many of the IDEs (Integrated Development Environments) are available which makes it easy to use. IDEs are available for tools like Eclipse , NetBeans, IntelliJ etc.
Maven stores all project jars. Library jar are in place called repository which could be central, local or remote repository. Maven downloads the dependency jar from central repository. Most of the commonly used libraries are available in http://repo1.maven.org/maven2/.
Downloaded libraries are stored in local repository called m2. Maven uses the libraries available in m2 folder and if any new dependency added then maven downloads from central repository to local repository. If libraries are not available in central repository then maven looks for remote repository. User has to configure the remote repository in pom.xml to download from remote repository.
Below is the example of configuring a remote repository topom.xml file. Provide id and url of the repository where libraries are stored.
1 |
< repositories >
|
2 |
< repository >
|
3 |
< id >libraryId</ id >
|
4 |
< url >http://comanyrepositryId</ url >
|
5 |
</ repository >
|
6 |
</ repositories >
|
General Phrases used in Maven:
- groupId: Generally groupId refers to domain id. For best practices company name is used as groupId. It identifies the project uniquely.
- artifactId: It is basically the name of the Jar without version.
- version: This tag is used to create a version of the project.
- Local repository: Maven downloads all the required dependencies and stores in local repository called m2. More details regarding the same would be shared in the next topic.
Build Life Cycle:
Basic maven phases are used as below.
- clean: deletes all artifacts and targets which are created already.
- compile: used to compile the source code of the project.
- test: test the compiled code and these tests do not require to be packaged or deployed.
- package: package is used to convert your project into a jar or war etc.
- install: install the package into local repository for use of other project.
Maven Setup:
Step 1: To setup Maven, download the maven’s latest version form Apache depending upon different OS.
Step 2: Unzip the folder and save it on the local disk.
Step 3: Create environment variable for MAVEN_HOME. Follow the below step:
Navigate to System Properties ->Advanced System Setting->Environment Variable ->System Variable ->New ->Add path of Maven folder
Step 4: Edit path variable and provide the bin folder path.
Step 5: Now verify the maven installation using command prompt and don’t forget to setup JAVA_HOME
Use mvn –version to verify maven version and output comes like below.
Install maven IDE in Eclipse:
Maven provides IDE to integrate with eclipse. I am using eclipse Juno here.
Navigate to Help->Eclipse Marketplace-> Search maven ->Maven Integration for Eclipse ->INSTALL
After installation you have to restart eclipse.
Then right click on pom.xml and verify all the options are available like below.
Create Maven project:
Step 1: Navigate to File- new-others-Maven-Maven Project-Click Next
Step 2: Check the Create a simple project and click Next
Step 3: Provide Group Id and Artifact Id .You can change the version of Jar as per your wish. Here I am using default name. Click Finish.
Step 4: After finish you will find the project structure is created like below. pom.xml is created which is used to download all dependencies.
pom.xml file looks like below:
------------
1 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
|
2 |
< modelVersion >4.0.0</ modelVersion >
|
3 |
< groupId >com.softwaretestinghelp.test</ groupId >
|
4 |
< artifactId >com.softwaretestinghelp.selenium</ artifactId >
|
5 |
< version >0.0.1-SNAPSHOT</ version >
|
6 |
</ project >
|
Step 5: Add dependencies for Selenium.
All selenium Maven artifacts are available in below central repository
http://repo1.maven.org/maven2/org/seleniumhq/selenium/
Add following dependencies in pom.xml for selenium
1 |
< dependency >
|
2 |
< groupId >org.seleniumhq.selenium</ groupId >
|
3 |
< artifactId >selenium-java</ artifactId >
|
4 |
< version >2.41.0</ version >
|
5 |
</ dependency >
|
Similarly, following is the dependency for Junit :
1 |
< dependency >
|
2 |
< groupId >junit</ groupId >
|
3 |
< artifactId >junit</ artifactId >
|
4 |
< version >4.4</ version >
|
5 |
</ dependency >
|
If you want to add other third party jar then add those dependencies in pom.xml
Step 6: Final pom.xml will be like below:
1 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
|
2 |
< modelVersion >4.0.0</ modelVersion >
|
3 |
< groupId >com.softwaretestinghelp.test</ groupId > < artifactId >com.softwaretestinghelp.selenium</ artifactId >
|
4 |
< version >0.0.1-SNAPSHOT</ version >
|
5 |
< dependencies >
|
6 |
< dependency >
|
7 |
< groupId >org.seleniumhq.selenium</ groupId >
|
8 |
< artifactId >selenium-java</ artifactId >
|
9 |
< version >2.41.0</ version >
|
10 |
</ dependency >
|
11 |
</ dependencies >
|
12 |
</ project >
|
Step 7: Maven will download all the dependency jars in to local repository called .m2.
M2 folder is basically inside Users->username->m2
All the jars will be placed in a folder called repository which is inside .m2 folder. Maven will create separate folders for different version and different group id.
Step 8: If m2 folder does not populate in Maven dependencies, then you can populate those jars manually.
– Eclipse Windows ->Preference
– Navigate Java->Build Path->Classpath Variables
– Click New Button ->Define M2_REPO and provide the path of m2 folder.
Step 9: Upon successful setup you will find Maven Dependencies folder like below which will have the required dependency jar for the project
Build the Project:
Project can be built by both using IDE and command prompt.
Using IDE you have to right click on POM-Run As-Maven Build
Enter goals like clean install etc. and click Run.
Same can be done using command prompt. Navigate to project folder where pom.xml lies.
And use below commands to clean, compile and install
For clean: mvn clean
For compile: mvn compile
For Install: mvn install
Below is the info which is displayed when you clean any project and shows “BUILD SUCCESS”.
1 |
[INFO] Scanning for projects... |
2 |
[INFO] |
3 |
[INFO] ------------------------------------------------------------------------ |
4 |
[INFO] Building com.softwaretestinghelp.0.0.1-SNAPSHOT |
5 |
[INFO] ------------------------------------------------------------------------ |
6 |
[INFO] |
7 |
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ com.softwaretestinghelp ---[INFO] Deleting C:\Users\rshwus\WORKSPACE\com.softwaretestinghelp\target
|
8 |
[INFO] ------------------------------------------------------------------------ |
9 |
[INFO] BUILD SUCCESS |
10 |
[INFO] ------------------------------------------------------------------------ |
11 |
[INFO] Total time: 0.702s |
12 |
[INFO] Finished at: Sat May 24 18:58:22 IST 2014 |
13 |
[INFO] Final Memory: 2M/15M |
14 |
[INFO] ------------------------------------------------------------------------ |
Conclusion:
Maven simplifies the code handling and process of building the project. Most of the projects follow maven structure.
Download all dependencies provided the dependencies are available in maven central repository. If any of the dependency is not available in maven central repository then you have to add repository path in pom.xml explicitly.
There are many other build tools available in like ant. But it is better to use maven while dealing with different versions and different dependencies. Maven even can manage the dependencies of dependencies. Other tools may not provide such flexibility like maven. Please post your queries anything related to maven here.
Next Tutorial #25: In the upcoming tutorial, we would discuss aboutcontinuous integration tool known as Hudson. We would study about its importance, role and benefits into Test Automation Framework. We would look at the Hudson straight from the beginning, from its installation to its working
相关推荐
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=... <name>SeleniumJava Maven Webapp <url>http://maven.apache.org</url>
### Selenium3+Java+Maven+TestNG+ReportNG+SVN+Jenkins自动化测试环境搭建 #### Java环境搭建 **一、安装JDK1.8** - **步骤**: 下载JDK安装包并按照向导指引进行安装,直至安装完成。 **二、配置JDK环境变量** ...
【Python的selenium操作:判断元素是否存在】 在Python的自动化测试中,Selenium是一个非常强大的工具,用于模拟用户与网页的交互。Selenium库提供了一系列API,使得我们可以控制浏览器进行各种操作,例如点击按钮...
### Eclipse 下 Selenium 2.0+ Maven + TestNG 环境搭建详解 #### 前言 在软件测试领域,尤其是Web应用的功能自动化测试中,Selenium 是一个非常流行的框架。结合Maven(用于构建管理和依赖管理)与 TestNG(用于...
【Selenium2.0+ Maven+TestNG】自动化测试框架搭建详解 自动化测试是软件开发过程中不可或缺的一部分,它能够提高测试效率,减少手动测试的工作量。Selenium2.0(也被称为Selenium WebDriver)是一个广泛使用的...
This book is an incremental guide that will help you learn and use the advanced features of the Selenium toolset including the WebDriver API in various situations to build a reliable test automation....
java+selenium+maven+testng自动化测试框架实例(实际项目) java+selenium+maven+testng自动化测试框架实例(实际项目) java+selenium+maven+testng自动化测试框架实例(实际项目)
Selenium项目 使用Maven Cucumber BDD的Selenium Automation这是在Stackoverflow网站上尝试用Cucumber BDD和maven进行的Selenium项目示例。 这是纯Java和Gherkin组合的项目。
One of test automation tools is Selenium. It is widely used around the world as a tool for automating test for web application. In this book we use Selenium WebDriver to perform automatic operation of...
Selenium 3的Maven模板具有最新的依赖性,因此您只需四个简单的步骤即可检出并开始编写测试。 如果您喜欢您所看到的内容,请参阅我的Selenium书“ 。 打开终端窗口/命令提示符 克隆此项目。 cd Selenium-Maven-...
【标题】"selenium+java+junit+maven" 指的是一个基于这些技术的Java自动化测试框架。这个框架主要用于Web应用的自动化测试,确保软件的功能性和稳定性。 **Selenium** 是一个广泛使用的Web浏览器自动化工具,支持...
One of test automation tools is Selenium. It is widely used around the world as a tool for automating test for web application. In this book we use Selenium WebDriver to perform automatic operation of...
这是一个基于Selenium 3、Java、Maven、TestNG、ReportNG和Excel的自动化测试框架。这个框架结合了多种强大的工具和技术,旨在提高软件测试的效率和准确性,尤其是在Web应用程序的自动化测试领域。 1. **Selenium 3...
Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款: 1.Selenium Core:支持DHTML的测试案例(效果类似数据驱动测试),它是Selenium IDE和Selenium RC的引擎。 2....
在进行自动化测试时,Selenium 是一款非常强大的工具,它允许开发者编写脚本来模拟用户对网页的操作。在本文中,我们将深入探讨Selenium与谷歌浏览器(Chrome)以及对应的Chrome驱动(ChromeDriver)的配合使用,...
The latest version of Selenium 3 brings with it a lot of new features that change the way you use and setup Selenium WebDriver. This book covers all those features along with the source code, ...
selenium-java-3.141.59.jar selenium java自动化
One of test automation tools is Selenium. It is widely used around the world as a tool for automating test for web application. In this book we use Selenium WebDriver to perform automatic operation of...