• 一、TestNG的基本使用


    一、背景:

    Testng是一套开源测试框架,是从Junit继承而来,testng意为test next generation。

    本章就是非常简单的讲一下TestNG的使用入门。为下一章二次开发做铺垫。

    二、创建项目及使用:

    2.1 创建maven项目

    原文地址:

    TestNG基本使用 - 全栈测试笔记 - 博客园

    创建maven项目

    然后在pom文件中,添加依赖。

    1. <dependency>
    2. <groupId>org.testng</groupId>
    3. <artifactId>testng</artifactId>
    4. <version>6.14.3</version>
    5. <scope>test</scope>
    6. </dependency>
    7. <dependency>
    8. <groupId>org.testng</groupId>
    9. <artifactId>testng</artifactId>
    10. <version>6.14.3</version>
    11. <scope>compile</scope>
    12. </dependency>

    2.2  常用注解

    2.2.1 管理case的运行顺序:

    常用注解,这里也是管理case的运行顺序等,

    @BeforeSuite / @AfterSuite

    @BeforeTest / @AfterTest

    @BeforeClass / @AfterClass,在类运行之前/后运行

    @BeforeMethod / @AfterMethod,在测试方法之前/后运行

    1. package com.qzcsbj;
    2. import org.testng.annotations.*;
    3. import org.testng.annotations.Test;
    4. /**
    5. * @描述 : <...>
    6. * @博客 : www.cnblogs.com/uncleyong
    7. * @微信 : ren168632201
    8. */
    9. public class TestAnnotation {
    10. @Test
    11. public void test(){
    12. System.out.println("TestAnnotation.test");
    13. System.out.println("线程ID:" + Thread.currentThread().getId());
    14. }
    15. @Test
    16. public void test2(){
    17. System.out.println("TestAnnotation.test2");
    18. }
    19. @BeforeMethod
    20. public void beforeMethodTest(){
    21. System.out.println("TestAnnotation.beforeMethodTest");
    22. }
    23. @AfterMethod
    24. public void afterMethodTest(){
    25. System.out.println("TestAnnotation.afterMethodTest");
    26. }
    27. @BeforeClass
    28. public void beforeClassTest(){
    29. System.out.println("TestAnnotation.beforeClassTest");
    30. }
    31. @AfterClass
    32. public void afterClassTest(){
    33. System.out.println("TestAnnotation.afterClassTest");
    34. }
    35. @BeforeSuite
    36. public void beforeSuiteTest(){
    37. System.out.println("TestAnnotation.beforeSuiteTest");
    38. }
    39. @AfterSuite
    40. public void afterSuiteTest(){
    41. System.out.println("TestAnnotation.afterSuiteTest");
    42. }
    43. }

    2.2.2 忽略测试用例

    测试过程中,问题还没解决,可以先忽略,也就是不执行此方法。

    1. import org.testng.annotations.Test;
    2. /**
    3. * @博客 : www.cnblogs.com/uncleyong
    4. * @微信 : ren168632201
    5. * @描述 : <...>
    6. */
    7. public class TestIgnore {
    8. @Test
    9. public void testa(){
    10. System.out.println("TestIgnore.testa");
    11. }
    12. @Test(enabled = true)
    13. public void testb(){
    14. System.out.println("TestIgnore.testb");
    15. }
    16. @Test(enabled = false)
    17. public void testc(){
    18. System.out.println("TestIgnore.testc");
    19. }
    20. }

    2.3 测试case运行的管理,测试套件

    testNG使用XML文件来管理case的执行。比如要运行哪些case。

    这个XML文件可以手动创建,也可以使用插件来生成。我们这里使用插件来生成xml文件。

    Preferences-->Plugins

     安装完Create TestNG XML插件后,再去生成testng.xml文件。

     Create TestNG XML

    然后重新一下项目,就会看到生成的testng.xml文件了。

    2.3.1 测试套件xml文件的讲解。

    testng.xml就是我们管理测试case运行的套件,文件名字可以自己命名。

    xml文件讲解:

    1. "1.0" encoding="UTF-8"?>
    2. "http://testng.org/testng-1.0.dtd">
    3. "All Test Suite">
    4. "test">
    5. <class name="com.qzcsbj.TestAnnotation"/>
    6. "test2">
    7. <class name="com.qzcsbj.TestAnnotationB">
    8. "testb"/>

    执行测试,运行xml文件就可以了。

    在xml文件里,右键,选择Run 这个xml文件。

    其他的一些细节,看原文,讲的很细节。TestNG基本使用 - 全栈测试笔记 - 博客园

    三、测试报告

    Java自动化测试之TestNG生成测试报告_Leoon123的博客-CSDN博客_testng生成测试报告

    Java接口自动化测试(六) — ZTestReport测试报告

    其他博主推荐使用ZTestReport报告,既美观,且展示数据简洁。
    ZTestReport最重要的两个文件TestReport,template。

    步骤一:添加依赖

    配置POM.xml文件,添加依赖:

    1. <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    2. <dependency>
    3. <groupId>com.google.code.gson</groupId>
    4. <artifactId>gson</artifactId>
    5. <version>2.8.0</version>
    6. </dependency>

    步骤二:下载ZTestReport文件

    下载地址:

    GitHub - zhangfei19841004/ztest: 自动化测试报告

    文件夹中,只有 template 与ZTestReport 这2个文件重要,其他的都可以忽略不计。

    下载下来后,新建个文件夹,将这两个文件放入到文件夹下。然后手动修改一下ZTestReport的代码。

     path 是 指定的生成报告的位置。

    templatePath 是 我们下载下来的template的位置,这里需要手动改一下。(为了快速完成,我这里写的是绝对位置,大家要注意改成正确的相对位置)

    步骤三:对case添加监听

    方法一,我们可以直接对case添加监听。

     这种直接在写case的时候,添加监听,

    方法二,在xml测试套里添加监听。

     二者选其一。

    步骤四、直接运行case,执行xml文件

    执行case就会自动生成report报告。

    这里简单讲一下生成报告的逻辑:

    我没看源码,猜的,不对请指出:

    template存放的是报告的数据格式,ZTestReport 提供了监听器,将case的运行结果注入到template模版中,然后生成report报告。

    我们接下来的二次开发,也要写一个类似于ZTestReport 一样的监听。

    下一章:

    二、TestNG的二次开发_傲娇的喵酱的博客-CSDN博客

  • 相关阅读:
    使用JSAPl来做一个倒计时的效果
    2000-2021年三批“智慧城市”试点名单匹配数据
    MongoDB系列之适用场景和不适用场景
    EFDC模型教程
    闭关三个月,腾讯大咖手写Framework最新源码笔记,从基础到进阶直接封神
    Android 视频通话分析总结
    使用HTTP爬虫ip中的常见误区与解决方法
    系列五、怎么查看默认的垃圾收集器是哪个?
    java计算机毕业设计高校师资管理系统源码+mysql数据库+系统+lw文档+部署
    【毕业设计】深度学习手势检测识别系统 - 卷积神经网络 opencv python
  • 原文地址:https://blog.csdn.net/qq_39208536/article/details/126988633