java+selenium+testng+maven测试框架

这是个自动化测试框架的简单介绍以及搭建步骤,在这里我们使用的语言是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的结构:
在这里插入图片描述

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
课程介绍你是否在寻找机会进入自动化测试领域? 你是否渴望学习selenium webdriver + Java以及最新的框架和技术进行web自动化测试? 你是否感兴趣学习Selenium如何用在你现有的项目里的? 这门课带你从Selenium搭建环境开始讲起,然后学习seleniumTestNG, logback, maven, jenkins。 我们假设学员没有任何自动化经验,来设计的这套课程。每个课题都从最基础的开始讲起。Selenium相关的该覆盖的课题都覆盖了。 例子都是来自于真实的web应用项目,帮助你理解不同的组件怎么用上自动化,这将展示给你一个行业层面的框架,增加自信心。 全网没有其他课程像这门课涵盖到如此之深的细节。 您将会学到什么 学完课程以后,你将拥有完整的Selenium Webdriver知识 你将具备从头开始设计Page Object、Page Factory、DATADRIVEN等搭建自动化框架的能力 用100多个实例对Selenium现实场景应用进行深入理解 全面了解TestNG, Maven, Jenkins, HTML报告,多浏览器并行测试 了解数据库测试和使用Selenium进行性能测试 你将彻底了解testNG框架 你从网上随便选择一个网站,都可以实现自动化,用所有可能的测试用例进行自动化测试 将提高你的编码技能,以编写最优化的自动化测试用例代码 你基本可以搞定任何Selenium面试,并能从设计阶段开始领导整个Selenium自动化项目 你应该能够使用应用程序的GUI来验证数据完整性 你将能够创建漂亮的报告来打动客户或领导 更深入地理解自动化指南和代码质量标准 会附带一个练习网站,可以用上所有可用的WebDriver功能,实现自动化 【适合人群】 软件手动测试人员想转为自动化测试的人员 自动化软件测试人员想加强专业技能的 刚毕业学生想从事软件行业 QA 组长或项目经理 【课程优势】 学完课程以后,你将拥有完整的Selenium Webdriver知识 【讲师介绍】 资质介绍: 12年以上软件测试工作经验,其中7年以上自动化测试开发经验 新书“Python3+Selenium3自动化测试项目实战”作者

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值