📅  最后修改于: 2020-11-06 05:02:46             🧑  作者: Mango
Maven是最新的构建测试工具。与Ant相比,它具有一些新功能,例如依赖项等。
Maven是项目构建或项目管理工具。每当多个测试工程师将其文件集成到同一框架中时,它都用于检查框架组件之间的编译问题。
它总是维护监视器,框架组件或构建,并且只要框架中发生更改,它就提供构建状态修改。
如果框架中没有编译问题,它将提供“构建成功”消息,否则提供“构建失败”消息。
Maven具有依赖项等新功能,可用于在测试执行之前从互联网上下载依赖项jar。
借助Maven,我们可以在命令行中执行测试脚本而不会出现日食。并且它始终提供框架文件夹结构。
有关Maven的更多信息,请参考以下链接:
https://www.javatpoint.com/maven-tutorial
Maven中提供了两种软件:
它是Mars,Luna,Oxo等最新Eclipse版本的默认插件,可用于通过Eclipse创建Maven项目。
安装用于Eclipse的Maven插件并将其与Selenium TestNG一起使用
大多数时候,Maven插件会自动安装在Eclipse中,但如果不存在,我们将转到Eclipse Market Place并搜索Maven并从那里下载M2E集成版本。
创建Maven项目的步骤
要创建一个Maven项目,请遵循以下步骤:
它用于在没有Eclipse的情况下在命令提示符下执行Selenium测试脚本,并且该软件应明确安装。
要安装Maven命令行插件,请执行以下步骤:
注意:在开始Maven的安装过程之前,我们将确保已安装Java并且还设置了环境变量。
步骤1:下载Apache Maven
步骤2:在系统变量中添加M2_Home
步骤3:将%M2_Home%\ bin添加到路径
步骤4:验证
mvn- version
在开始编写Maven代码之前,我们需要在pom.xml文件中添加诸如TestNG和Selenium之类的常规依赖项。
因此,为此,我们将遵循以下过程:
org.testng
testng
6.8
compile
然后,我们将为Selenium添加Maven依赖项,因此,我们将遵循与之前相同的过程:
org.testng
testng
6.8
compile
org.seleniumhq.selenium
selenium-java
3.141.59
注意
getTitle():此方法用于捕获页面标题。
getCurrentURL():用于捕获页面的当前URL。
为了执行上述测试脚本,我们将在MavenProject中创建一个包。
要在MavenProject中创建一个类,请遵循以下过程:
测试包→新建→类
创建包和类之后,我们将开始编写代码。
根据我们的代码要求,我们将添加多个依赖项。
添加依赖项后,我们的pom.xml文件如下所示:
junit
junit
3.8.1
test
org.testng
testng
6.8
compile
com.google.inject
guice
4.1.0
no_aop
org.seleniumhq.selenium
selenium-java
3.141.59
org.seleniumhq.selenium
selenium-chrome-driver
2.50.0
com.google.guava
guava
22.0
com.google.api-client
google-api-client-appengine
1.23.0
com.google.guava
guava-jdk5
com.google.code.gson
gson
2.2.4
并且,这里是示例代码:
package testpackage;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class MavenTest1 {
public String baseUrl = "https://www.javatpoint.com/";
String driverPath = "C://chromedriver_win321//chromedriver.exe";
public WebDriver driver ;
@Test
public void test() {
// set the system property for Chrome driver
System.setProperty("webdriver.chrome.driver", driverPath);
// Create driver object for CHROME browser
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get(baseUrl);
// get the current URL of the page
String URL= driver.getCurrentUrl();
System.out.print(URL);
//get the title of the page
String title = driver.getTitle();
System.out.println(title);
}
@BeforeTest
public void beforeTest() {
System.out.println("before test");
}
@AfterTest
public void afterTest() {
driver.quit();
System.out.println("after test");
}
}
我们可以通过多种方式运行以上代码:
如果我们使用TestNG运行上面的代码,我们将遵循以下过程:
要通过Maven运行相同的代码,请执行以下步骤:
首先,我们需要将MavenTest1.java文件转换为TestNG文件,为此,请执行以下过程:
之后,我们将运行testng.xml文件,因此,我们需要在pom.xml文件中添加Maven插件。
因此,我们将添加三个不同的插件,如下所示:
注意:
Maven编译器插件用于编译Maven项目的源代码。 Maven测试命令将连接到互联网,并将所有依赖项jar下载到.M2文件夹本地存储库中,然后编译整个selenium源代码,如下图所示:
当我们必须运行应用程序的单元测试时,可以使用Maven surefire插件。
Maven源插件用于构建具有.java源文件的jar文件。
添加所有插件后,我们的pom.xml如下所示:
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.6
org.apache.maven.plugins
maven-surefire-plugin
2.19.1
C:\Users\JTP\eclipse-workspace\MavenProject\testng.xml
org.apache.maven.plugins
maven-source-plugin
attach-sources
jar
如果我们在Maven命令的帮助下使用某些远程计算机,则需要转到命令提示符。
为此,我们将转到Maven项目的特定目录,因此在MavenProject上单击鼠标右键,然后从给定的弹出菜单中选择“属性”选项。
cd eclipse-workspace\MavenProject
一旦进入MavenProject,我们将使用Maven的一些常见命令,如下所示:
Maven commands | Description |
---|---|
mvn clean install | This command is used to generate, compile, and execute the jars files. |
mvn test | We will use this command when we have to execute the tests against the compiled source code with the help of an appropriate unit testing framework. |
mvn compile | It is used to compile the source code of the Maven project. |
mvn package | It will pack the executed code in a different format like Jar. |
示例2:在此示例中,我们仅创建两个单元测试用例,将在其中添加和减去两个变量(p和q),并通过TestNG和Maven运行代码。
这里是示例代码:
package testpackage;
import org.testng.Assert;
import org.testng.annotations.Test;
public class demo1 {
@Test
public void sum() {
System.out.print("Sum method");
int p=10;
int q=20;
Assert.assertEquals(30, p+q);
}
@Test
public void sub() {
System.out.print("Sub method");
int p=20;
int q=10;
Assert.assertEquals(10, p-q);
}
}
要在TestNG的帮助下运行代码,请执行以下过程:
要在Maven的帮助下运行相同的代码,请执行以下步骤:
org.apache.maven.plugins
maven-surefire-plugin
2.19.1
C:\Users\JTP\eclipse-workspace\MavenProject\testng1.xml