📜  selenium Maven

📅  最后修改于: 2020-11-06 05:02:46             🧑  作者: Mango

seleniumMaven

Maven是最新的构建测试工具。与Ant相比,它具有一些新功能,例如依赖项等。

Maven是项目构建或项目管理工具。每当多个测试工程师将其文件集成到同一框架中时,它都用于检查框架组件之间的编译问题。

它总是维护监视器,框架组件或构建,并且只要框架中发生更改,它就提供构建状态修改。

如果框架中没有编译问题,它将提供“构建成功”消息,否则提供“构建失败”消息。

Maven具有依赖项等新功能,可用于在测试执行之前从互联网上下载依赖项jar。

借助Maven,我们可以在命令行中执行测试脚本而不会出现日食。并且它始终提供框架文件夹结构。

有关Maven的更多信息,请参考以下链接:

https://www.javatpoint.com/maven-tutorial

Maven中提供了两种软件:

  • Maven Eclipse插件
  • Maven命令行插件

Maven Eclipse插件

它是Mars,Luna,Oxo等最新Eclipse版本的默认插件,可用于通过Eclipse创建Maven项目。

安装用于Eclipse的Maven插件并将其与Selenium TestNG一起使用

大多数时候,Maven插件会自动安装在Eclipse中,但如果不存在,我们将转到Eclipse Market Place并搜索Maven并从那里下载M2E集成版本。

创建Maven项目的步骤

要创建一个Maven项目,请遵循以下步骤:

  • 转到文件→新建→项目

  • 然后,展开Maven文件夹并选择Maven Project选项,然后单击Next。

  • 再次单击下一步按钮以进行进一步的处理。

  • 单击下一步不执行任何操作。

  • 单击“下一步”按钮后,在这种情况下,我们将提供Group IDArtifact ID ,并将Group ID作为MavenProject和Artifact ID作为MavenProject ,然后单击Finish按钮,如下面的屏幕快照所示:

  • 创建完Maven项目后,我们的Maven文件夹结构将如下所示:

Maven命令行插件

它用于在没有Eclipse的情况下在命令提示符下执行Selenium测试脚本,并且该软件应明确安装。

Maven命令行插件的安装步骤

要安装Maven命令行插件,请执行以下步骤:

注意:在开始Maven的安装过程之前,我们将确保已安装Java并且还设置了环境变量。

步骤1:下载Apache Maven

  • 首先,转到Google搜索以下载Maven ,然后单击“第一”链接,如下面的屏幕截图所示:seleniumMaven
  • 一旦单击链接,它将导航到Maven社区。除Binary zip存档外,单击给定的链接,如下面的屏幕快照所示:seleniumMaven
  • 下载zip文件夹,然后解压缩该文件夹并将其放入C驱动器,然后复制该文件夹的位置。

步骤2:在系统变量中添加M2_Home

  • 复制位置后,我们将转到“环境变量”窗口,然后单击“系统变量”部分上的“新建”按钮,如下图所示:

  • 之后,我们将提供Variable nameVariable value ,然后单击OK。

步骤3:将%M2_Home%\ bin添加到路径

  • 创建M2_Home系统变量后,我们将找到Path变量,然后单击Edit按钮,如下面的屏幕截图所示:

  • 屏幕上将显示“编辑变量”窗口,然后单击“新建”按钮和%M2_Home%\ bin值,然后单击“确定”。

步骤4:验证

  • 设置环境变量后,我们将检查Maven是否已成功安装。
  • 为此,我们将打开命令提示符并键入以下命令:
mvn- version

  • 我们可以在上面的屏幕截图中看到Apache Maven已成功安装。

如何使用Maven处理或下载依赖项Jar

在开始编写Maven代码之前,我们需要在pom.xml文件中添加诸如TestNG和Selenium之类的常规依赖项。

因此,为此,我们将遵循以下过程:

  • 我们自动在同一项目中获得Pom.xml文件。
  • 要下载TestNGSelenium的依赖项jar,我们应该为Pom.xml文件中的所有工具编写一个依赖项代码。
  • 要获取依赖项代码,请转到Google搜索并输入“ TestNG Maven依赖项”,然后单击给定的链接。seleniumMaven
  • 并复制TestNG的依赖项代码,然后粘贴到pom.xml文件中。seleniumMaven
  • 作用域部分,将值从test更改为compile ,最终的依赖代码将如下所示:

 org.testng
 testng
 6.8
 compile

然后,我们将为Selenium添加Maven依赖项,因此,我们将遵循与之前相同的过程:

  • 转到Google并搜索“ Mavenselenium依赖性”,然后单击给定的链接,如下面的屏幕截图所示:

  • 并从链接中复制依赖项代码,然后粘贴到xml文件中。

  • 在添加TestNG和Selenium的依赖项代码之后,Pom.xml文件将如下所示:

org.testng
testng
6.8
compile

 
org.seleniumhq.selenium
selenium-java
3.141.59

 
  • 然后按ctrl + s保存pom.xml文件。
  • 添加完依赖项后,我们可以看到所有jars文件都添加到了MavenProject下的Maven Dependencies文件夹中。seleniumMaven

通过Maven和TestNG执行Selenium代码

  • 我们将在@ Test,@ BeforeTest和@AfterTest TestNG注释的帮助下编写一个示例测试用例。
  • 首先,我们将启动Google Chrome浏览器
  • 然后,导航到javatpoint网站。
  • 并借助getTitle()getCurrentURL()来获取网站的当前页面URL和标题。

注意

getTitle():此方法用于捕获页面标题。

getCurrentURL():用于捕获页面的当前URL。

为了执行上述测试脚本,我们将在MavenProject中创建一个包。

  • 要在MavenProject中创建一个包,我们将右键单击src / test / java→New→Package

  • 之后,我们将提供的包名称为“ testpackage ”,然后单击“完成”按钮,如下面的屏幕截图所示:seleniumMaven
  • 创建包后,我们将创建一个类。

要在MavenProject中创建一个类,请遵循以下过程:

  • 右键单击新创建的包,然后选择“新建”,然后从给定列表中选择“类” ,如下面的屏幕截图所示:

测试包→新建→类

  • 并且,将类的名称提供为“ MavenTest1 ”,然后单击“完成”。

创建包和类之后,我们将开始编写代码。

根据我们的代码要求,我们将添加多个依赖项。

添加依赖项后,我们的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运行
  • 通过命令行运行

通过TestNG运行

如果我们使用TestNG运行上面的代码,我们将遵循以下过程:

  • 右键单击java文件,然后选择Run As→1 TestNG Test ,如下图所示:

  • 成功运行代码后,将给出以下输出:

  • 如下面的屏幕截图所示,它将在控制台窗口中启动浏览器:seleniumMaven

穿越Maven

要通过Maven运行相同的代码,请执行以下步骤:

首先,我们需要将MavenTest1.java文件转换为TestNG文件,为此,请执行以下过程:

  • 右键单击Java文件并选择TestNG ,然后在给定列表中选择Convert to TestNG选项。

  • 选择“转换为TestNG”选项后,它将打开以下窗口,然后,单击“完成”。

  • 并且,转换后的TestNG文件将如下所示:

之后,我们将运行testng.xml文件,因此,我们需要在pom.xml文件中添加Maven插件。

因此,我们将添加三个不同的插件,如下所示:

  • Maven编译器插件
  • Maven surefire插件
  • 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
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



 


  • 保存pom.xml文件并执行代码。
  • 要执行上述代码,请右键单击MavenProject→Run As→Maven Test ,如下图所示:

  • 通过所有测试用例并成功运行Build时,它将提供以下输出:

  • 如下面的屏幕截图所示,它将在控制台窗口中启动浏览器:

通过命令行运行

如果我们在Maven命令的帮助下使用某些远程计算机,则需要转到命令提示符。

为此,我们将转到Maven项目的特定目录,因此在MavenProject上单击鼠标右键,然后从给定的弹出菜单中选择“属性”选项。

  • 并且,然后复制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.
  • 在这里,我们将执行mvn clean install
  • 并且,此命令将执行Maven的所有四个生命周期,然后执行测试用例,并创建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中执行代码

要在TestNG的帮助下运行代码,请执行以下过程:

  • 右键单击java文件,然后选择Run As→1 TestNG Test ,如下图所示:

  • 成功运行代码后,将给出以下输出:seleniumMaven

通过Maven执行代码

要在Maven的帮助下运行相同的代码,请执行以下步骤:

  • 首先,为此,我们需要将Demo1.java文件转换为TestNG文件。
  • 右键单击Java文件并选择TestNG ,然后在给定的弹出菜单中选择Convert to TestNG。

  • 并且,我们还可以根据需要更改文件名,然后单击“完成”。

  • 之后,我们将通过插件提供xml文件到pom.xml文件的路径,就像在上面的示例中一样:

org.apache.maven.plugins
maven-surefire-plugin
2.19.1


C:\Users\JTP\eclipse-workspace\MavenProject\testng1.xml



  • 在pom.xml文件中添加Maven-surefire-plugin后,我们将通过按ctrl + s保存该文件。
  • 然后,右键单击MavenProject→运行方式→Maven测试,如下图所示:

  • 通过所有测试用例并成功运行Build时,它将提供以下输出: