zoukankan      html  css  js  c++  java
  • 基于TestNG和Maven的接口测试之(一)- 基础配置

    TestNG基本介绍

    TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试,最常见的是结合selenium做Web页面的自动化测试和结合httpclient的接口测试,它使用Java注释去写测试方法。主要特点:

    • 强大的注解功能;
    • 数据驱动;
    • 灵活的测试配置;
    • 支持多种并发测试策略;
    • 可以和多种工具(插件)协同使用,比如Eclipse、IntelliJ IDEA和Maven等。

    测试人员一般用TestNG来写自动化测试,开发人员一般用Junit写单元测试,TestNG适合测试人员使用的原因:

    • 比Junit涵盖功能更全面的测试框架;
    • Junit更适合隔离性比较强的单元测试;
    • TestNG更适合复杂的集成测试。

    TestNG和Maven协同使用

    前提条件: 安装Java SDK。

    安装和配置

    1. 安装与配置下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    2. Eclipse:https://eclipse.org/downloads/
    3. Intellij IDEA: https://www.jetbrains.com/idea/
    4. Maven:http://maven.apache.org/download.cgi#

    Maven配置和使用

    环境配置

    1. 将 Maven 下载到本地解压后

    2. 设置环境变量"我的电脑"右键菜单->属性->高级->环境变量->系统变量->新建

      • 变量名:MAVEN_HOME
      • 变量值:D:Java_mavenapache-maven-3.6.3
    3. 找到"Path"变量名 ->"编辑"添加如下:

      • 变量名:Path
      • 变量值:MAVEN_HOME%in;
    4. 添加好了以后,打开"cmd"运行"mvn -version"来测试Maven是否配置正确

      Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
      Maven home: D:Java_mavenapache-maven-3.6.3in..
      Java version: 1.8.0_161, vendor: Oracle Corporation, runtime: D:Javajdk1.8.0_161jre
      Default locale: zh_CN, platform encoding: GBK
      OS name: "windows 10", version: "10.0", arch: "x86", family: "windows"
      

    Maven的配置

    1. 配置Maven仓库

      将maven的仓库指向自己的源代码存在的位置。

      • 修改 Maven 仓库的路径。 打开...apache-maven-3.6.3confsettings.xml 文件, 大概在49行到57行之间的位置做如下修改:

        <localRepository>D:\Git_genejiang2012\my_testng</localRepository>
        
    2. 打开IDEA
      2.1 新建Maven的project

      2.2 打开IDEA的Settings, 修改Maven的路径, maven的路径为maven存放的本地路径

      2.3 打开项目文件下的POM.xml文件

      • 增加maven的插件下载路径

        <dependencies>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>7.1.0</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
        
      • 加入testng的版本信息, maven自动下载相关插件

        <dependencies>
          <dependency>
              <groupId>org.testng</groupId>
              <artifactId>testng</artifactId>
              <version>7.1.0</version>
              <scope>test</scope>
          </dependency>
        </dependencies>`
        
      • 增加Build的信息

        <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>3.7.0</version>
                  <configuration>
                      <source>${jdk.version}</source><!-- 源代码使用的开发版本 -->
                      <target>${jdk.version}</target><!-- 需要生成的目标class文件的编译版本 -->
                      <!-- 解决maven test命令时console出现中文乱码乱码 -->
                      <argLine>-Dfile.encoding=UTF-8</argLine>
                      <testFailureIgnore>true</testFailureIgnore>
                      <suiteXmlFiles>
                          <suiteXmlFile>testNG.xml</suiteXmlFile>
                      </suiteXmlFiles>
                  </configuration>
              </plugin>
        
              <!-- 添加插件 关联testNg.xml -->
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.15</version>
                  <configuration>
                      <testFailureIgnore>true</testFailureIgnore>
                      <suiteXmlFiles>
                          <file>testNG.xml</file>
                      </suiteXmlFiles>
                      <!--<workingDirectory>target/</workingDirectory>-->
                  </configuration>
              </plugin>
          </plugins>
        
          <!--配置resources 资源-->
          <resources>
              <resource>
                  <directory>src/main/resources</directory>
                  <includes>
                      <include>**/*.properties</include>
                      <include>**/*.xml</include>
                      <include>**/*.xls</include>
                  </includes>
                  <filtering>false</filtering>
              </resource>
          </resources>
        </build>
        

      2.4 在当前project创建testNG.xml

      <?xml version="1.0" encoding="utf-8" ?>
        <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
        <suite name="my_test" parallel="false">
            <test name="testDemo1">
                <classes>
                    <class name="com.genestudio.test.TestDemo"></class>
                </classes>
            </test>
        </suite>
      

      2.5 新建package, com.genestudio.test, 在该package下面创建TestDemo

      
        package com.chiefclouds.test;
      
        import org.testng.annotations.AfterClass;
        import org.testng.annotations.AfterGroups;
        import org.testng.annotations.AfterMethod;
        import org.testng.annotations.AfterSuite;
        import org.testng.annotations.AfterTest;
        import org.testng.annotations.BeforeClass;
        import org.testng.annotations.BeforeGroups;
        import org.testng.annotations.BeforeMethod;
        import org.testng.annotations.BeforeSuite;
        import org.testng.annotations.BeforeTest;
        import org.testng.annotations.Test;
      
      
        public class TestDemo {
            @BeforeSuite
            public void beforeSuite(){
                System.out.println("Before Suite!");
            }
      
            @AfterSuite
            public void afterSuite(){
                System.out.println("After Suite!");
            }
      
      
            @BeforeTest
            public void beforeTest(){
                System.out.println("Before Test");
            }
      
        }
      

      2.6 maven中run test, 查看log 结果

        [INFO] -------------------------------------------------------
        [INFO]  T E S T S
        [INFO] -------------------------------------------------------
        [INFO] Running TestSuite
        Hello TestNG
        [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.961 s - in TestSuite
        [INFO] 
        [INFO] Results:
        [INFO] 
        [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
        [INFO] 
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time:  3.535 s
        [INFO] Finished at: 2020-07-15T16:50:13+08:00
        [INFO] ------------------------------------------------------------------------
      

      2.7 查看targe中生成中测试报告,${project_dir}$ argetsurefire-reportsemailable-report.html

  • 相关阅读:
    页面上有10个多选框,实现三个按钮(重置、反选、全选)功能
    鼠标点哪 哪出15*15的圆型div
    es写简单的留言板
    面试准备(3)事件循环
    面试准备(2)async+await的使用与原理
    面试准备(1)重排与重绘和验证码
    vue项目修改el-input样式
    echarts画雷达图详解
    决心
    国庆中秋
  • 原文地址:https://www.cnblogs.com/Tcorner/p/13306770.html
Copyright © 2011-2022 走看看