java+selenium+testng+maven测试框架

版权声明:本文为博主原创,若转载请附上博文链接 https://blog.csdn.net/liudong124521/article/details/89406599

这是个自动化测试框架的简单介绍以及搭建步骤,在这里我们使用的语言是java,到的工具有selenium,testng,maven,IDE的话idea和myeclipse都可以,这里使用的是idea2018。
下面简单介绍下各个工具和它们的使用以及框架搭建步骤。

maven 是什么
官方释义是maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。但是这样的介绍还是略显抽象,在我看来,maven的核心功能是依赖,那什么是依赖呢,依赖就是maven的配置文件pom.xml里所定义的一种规则,我们可以通过在pom.xml里设置依赖以添加我们所需要的jar包。
来想象这样一个场景,有两个java项目a和b,a需要b里的一些类,这时候就需要把b打成jar包,然后在a项目里导入jar包,当a所需的类来自很多其他项目时,就要手工导入很多jar包,在这种场景下,maven可以就可以帮助我们省掉很多繁琐的步骤,我们可以把maven看作是一个外壳,在这个外壳下,java项目还是普通java项目,maven这个外壳只是赋予了这个项目一些新的,方便的特性。

maven的安装以及在idea中的配置
下载maven安装包后解压并配置环境变量,完成后在cmd窗口输入mvn -v来验证是否安装成功,若返回版本号,即为安装成功。
安装完毕后配置本地仓库,在maven安装文件夹里找到config里的settings.xml,进行修改,如下:

<localRepository>D:\maven</localRepository>;

然后打开idea,在file-setting里,搜索选择maven,选择并设置maven目录和setting.xml文件目录,至此maven安装及配置完成。

新建maven项目并导入testng和selenium
idea的file里新建project,选择maven,新建一个maven项目,然后我们可以看到前面提到的pom.xml,打开后可以看到里面的内容,下面要做的就是添加依赖,即添加我们所需要的jar包,pom.xml里,groupId、artifactId、version三个属性就能定位一个jar包,在这三个属性标签之外,还有dependency和dependencies两个标签,我们需要在此添加的jar包有selenium和testng,如下所示:

<dependencies>
       <dependency>
       <groupId>org.testng</groupId>
           <artifactId>testng</artifactId>
           <version>6.14.3</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.seleniumhq.selenium</groupId>
           <artifactId>selenium-java</artifactId>
           <version>3.14.0</version>
       </dependency>
       <dependency>
           <groupId>org.seleniumhq.selenium</groupId>
           <artifactId>selenium-server</artifactId>
           <version>3.14.0</version>
       </dependency>
   </dependencies>

至此,再加上一个浏览器驱动程序,一个最基本的框架就搭建好了,这里用的是chromedriver,不多作介绍,下面来简单介绍下testng及其一个简单验证。

testng的简单介绍以及简单验证
testng是java中的一个测试框架, 类似于junit 和nunit,功能更加强大,我们先来写一个简单验证程序来看一下testng有没有导入成功:

import org.testng.Assert;
import org.testng.annotations.Test;

public class LdTest {
	
  @Test
  public void test() {
	  System.out.println("这是一个简单验证");
	  Assert.assertTrue(true);
  }
}

运行结果如下,说明是没问题的:
运行结果
上面程序里的@Test是testng的一个注解,testng支持多种注解,只作简单介绍,如下(表格为转载):
在这里插入图片描述

关于selenium
selenium是一个UI自动化的开源工具,需要配合浏览器驱动来使用,selenium调用chrome的类如下所示,这里简单展示了打开浏览器然后打开百度网站,获取网页标题并输出的方法,下面两种方法都可以,不同之处在于方法一把chromedriver放在了project里面,需要用setProperty()方法指定位置,方法二把chromedriver放在chrome安装路径下,不需要指定位置:
1、

import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.io.File;

public class drivertest1 {
   private static WebDriver driver;
   private static File file;
   @BeforeTest
   public void beforeMethod() {
       //System.setProperty("webdriver.chrome.driver","driver\\chromedriver.exe");
       file=new File("driver\\chromedriver.exe");
       System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
       System.out.println(file.getAbsolutePath());

       driver = new ChromeDriver();//初始化driver
       driver.manage().window().maximize();
   }

   @AfterMethod
   public void afterMethod() {
       System.out.println("Page title is: " + driver.getTitle());
       driver.quit();
   }

   @Test
   public void test_case3() {
       driver.get("http://www.baidu.com");
   }
}


运行结果如下:
在这里插入图片描述


2、

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
//chromedriver放在了chrome安装目录下
public class drivertest {

   WebDriver driver;

   @BeforeMethod
   public void beforeMethod() {
       driver = new ChromeDriver();
   }

   @AfterMethod
   public void afterMethod() {
       System.out.println("Page title is: " + driver.getTitle());
       driver.quit();
   }

   @Test
   public void test_case3() {
       driver.get("http://www.baidu.com");
   }
}



selenium的主要定位方法有如下八种:
在这里插入图片描述
其中比较需要注意的是,根据xpath来进行定位时,尽量使用相对路径,因为使用绝对路径的话,一是代码太长不方便阅读,二是在以后的开发过程中,如果路径稍有变动,脚本就会运行报错。

新建一个xml文件来存放所有测试类
当我们的脚本越来越多后,可以新建一个xml文件来存放所有类,这样运行这个xml文件时就可以运行文件里包含的所有类,如下:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
   <test name="Test">
       <classes>
           <class name="test01"/>
           <class name="drivertest1"/>
           <class name="IeTest"/>
           <class name="FirefoxdriverTest"/>
       </classes>
   </test> <!-- Test -->
</suite> <!-- Suite -->

以上只是一个最最基本的自动化测试框架的搭建,如果要在实际工作中使用此类框架,这些当然是不够的,还有很多地方需要继续完善。

附这个project的结构:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liudong124521/article/details/89406599