越写悦快乐之如何使用TestNG开启构建参数化的测试套件

越写悦快乐之如何使用TestNG开启构建参数化的测试套件_第1张图片
TestNG - 图片来自App

上一篇文章,我们阐述了如何使用Selenium框架,基于Java语言的开启自动化的Web测试,我们从配置开发环境入手,然后编写测试用例,,运行测试并生成测试报告,开启了我们的自动化测试之路。今天,在此基础上,我们利用TestNG配置启动的测试用例,可以优化我们的测试流程,使用参数化的方式让Selenium框架帮助我们填充页面数据,进一步构建自动化的流程,让我们马上开始吧。

开发环境

  • Window 10.0.17763
  • Java 8.0.191
  • Chrome 73.0.3683
  • IDEA 2018.3

Maven Version

越写悦快乐之如何使用TestNG开启构建参数化的测试套件_第2张图片
Maven版本 - 图片来自App

Build Version



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.7.RELEASE
        
    
    me.weitao.app
    selenium-tour
    0.0.1-SNAPSHOT
    selenium-tour
    Selenium Project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.flywaydb
            flyway-core
        
        
            org.seleniumhq.selenium
            selenium-java
            3.141.59
        
        
            org.testng
            testng
            6.14.3
            test
        
        
            com.relevantcodes
            extentreports
            2.41.2
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    
                        ${basedir}/src/main/resources/testng.xml
                    
                
            
        
    


构建步骤

添加依赖 => 配置文件 => 编写测试类 => 验证结果

添加依赖

参考

配置文件

我们利用TestNG的配置文件testng.xml文件来配置运行mvn test的启动项,下面给出配置文件的内容,仅供大家参考。





    
        
        
            
        
    

我们可以查看DTD文件来检索XML配置文件支持的标签及属性,这样我们会更加熟悉配置文件的含义,并结合具体的业务逻辑丰富TestNG的配置选项,然后我们在src/main/resources文件夹下创建name.properties文件并写入以下内容。

name=weitao

编写测试类

然后我们在src/test/java下创建ParameterTest类并读取配置文件name.properties,将文件内容打印到控制台,当然我们也可以从指定的目录读取指定的文件并保存起来,以便执行下一个测试时能获取参数化的数据。

package me.weitao.app.selenium;

import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

import java.util.Properties;

/**
 * @author Watony Weng
 */

public class ParameterTest {

    @Test
    @Parameters(value = {"appConfig"})
    public void fetchFile(@Optional("name.properties") String appConfig) {
        System.out.println("appConfig => " + appConfig);
        try {
            Properties props = PropertiesLoaderUtils.loadAllProperties("name.properties");
            for (Object key : props.keySet()) {
                System.out.println(key + " => " + props.get(key));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

要点解析

  • 单独执行fetchFile方法可以读取配置文件内容
  • 通过PropertiesLoaderUtils快速加载配置文件
  • 根据配置文件的Key-Value关系输出值

运行测试

我们在IDEA开发环境下,切换窗口到Terminal下,执行mvn clean test后,在Terminal窗口输出以下结果。

越写悦快乐之如何使用TestNG开启构建参数化的测试套件_第3张图片
运行结果 - 图片来自App

参考

  • Github

个人收获及总结

我梳理一下今天的知识点,从文件中读取数据并保存,通过TestNG的方式执行Test Suite,那么接下来我们可以将参数化的方式和Selenium结合起来,填充页面,比如发送文件到输入框,响应页面事件,只要是利用WebDriver标准操作页面的方式,我们就能发挥无限的潜能,构建更加稳定和更快的页面,随后我们会利用POM来扩展Selenium的操作,让它更加标椎化。我们的目标是利用工具提升我们的工作效率,更快更好地服务我们的业务。 希望大家保持学习的热情,构建更加快速和稳定的产品或服务。

你可能感兴趣的:(越写悦快乐之如何使用TestNG开启构建参数化的测试套件)