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

  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/Tcorner/p/13306770.html
Copyright © 2011-2022 走看看