💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 如何在 TestNG 中执行失败的测试用例:Selenium WebDriver > 原文: [https://www.guru99.com/run-failed-test-cases-in-testng.html](https://www.guru99.com/run-failed-test-cases-in-testng.html) 在本教程中,您将学习- * [创建一个硒项目](#1) * [将 Selenium 项目转换并执行为 TestNG](#2) * [通过命令行](#3)执行 TestNG * [如何仅运行失败的测试用例](#4) * [从命令行](#5)运行 testng-failed.xml 文件 ## 创建一个硒项目 准备项目 **步骤 1)**在 Eclipse 中,通过单击新的 Java 项目来创建 [Java](/java-tutorial.html) 项目 ![](https://img.kancloud.cn/32/7d/327dde4f76601626fe6fefc74e1a6deb_614x619.png) **步骤 2)**在此步骤中, 1. 给出项目名称 2. 选择执行环境 3. 选择项目布局选项 4. 点击“完成”按钮。 ![](https://img.kancloud.cn/48/10/48103053388257db40c1bca5544e0f95_532x717.png) 当您单击完成按钮时。 创建了“ TestProject” java 项目。 “ TestProject”将如下所示。 ![](https://img.kancloud.cn/6a/a5/6aa50d94e22271a3c1bbc7d66c951fcc_258x100.png) **步骤 3)**打开该新创建的项目。 您将能够在 Package Explorer 中看到“ src”文件夹。 1. 右键单击项目,然后选择“新建” 2. 选择选项包 ![](https://img.kancloud.cn/81/cf/81cf0682f34a67de16511c90a478ebd3_734x371.png) **步骤 4)**在此步骤中, 1. 浏览 src 文件夹并选择包 2. 给出包装名称并 3. 最后,单击完成按钮。 (程序包名称-> com.test) ![](https://img.kancloud.cn/c5/5c/c55ccbed96bf23f3a41f95c7a7814ed3_525x498.png) 单击“完成”后,项目结构将如下所示: ![](https://img.kancloud.cn/46/27/462749bcfa7f5b739ee6997303116a40_327x137.png) **步骤 5)**在此步骤中, 1. 现在,右键单击新创建的包,然后 2. 选择选项“类别”。 ![](https://img.kancloud.cn/07/fb/07fb907391ccadb53b1158f853fd0a21_771x444.png) 将打开一个新窗口。 **步骤 6)**在此步骤中, 1. 给出“班级”名称 2. 选择修饰符 3. 浏览并选择超类 java.lang.object 4. 单击完成按钮。 在这里,您将创建两个类,例如: **DemoA,DemoB** 。 首先创建类 DemoA。 ![](https://img.kancloud.cn/28/3e/283e065c17eae91e693e8aa44f6ac59d_540x634.png) 当您单击“完成”按钮时。 然后它将创建类似这样的类: ![](https://img.kancloud.cn/40/5c/405ce057e41ac75d646e8e59438e97cd_274x139.png) 同样,创建类 DemoB,单击“完成”时,按钮类如下所示- ![](https://img.kancloud.cn/c6/cf/c6cfd8aa95bf1c4db146fc48ddf1ca51_231x108.png) **步骤 7)**如果您已经安装了 TestNG 库,只需单击 Java Project --- > Properties。 ![](https://img.kancloud.cn/d6/ae/d6ae2955d29d58c9b7fbc2bba2eba3cb_438x731.png) **步骤 8)**现在在属性窗口中, 1. 单击 Java 构建路径 2. 点击图书馆 3. 单击添加库。 ![](https://img.kancloud.cn/3f/d3/3fd3a183d0356e60512943f5966bf713_727x552.png) 下一个 1. 点击“ TestNg”,然后 2. 点击“下一步”。 ![](https://img.kancloud.cn/d3/7c/d37c80fb4d941e4fbd1f1b9a1a7389f3_524x457.png) 然后点击“完成”按钮。 ![](https://img.kancloud.cn/bc/70/bc70a048afa75b55f108397241dfcd27_522x461.png) 之后,编写以下代码。 **适用于 Class DemoA** ![](https://img.kancloud.cn/4d/31/4d316271aa0b88b61b175d9e60c09a31_404x240.png) **代码说明:** * Driver.manage()。window()。maximize(); 这行代码将最大化浏览器窗口。 * driver.get(https://www.google.co.in); 此行将在“ URL”字段中输入指定的 URL。 * driver.findElement(By.name(“ q”))。sendKeys(“ Hi”); 该行将识别“ Google”搜索框,并输入您使用 sendKeys 方法发送的数据。 **输出:上面的程序包含错误,因此无法执行。** 对于 DemoB 类, ![](https://img.kancloud.cn/cc/07/cc07345e53fa3e8b37a0da20c50cf56d_416x243.png) 带红色下划线的单词是此处的错误。 因为尚未添加包含这些类和接口的 jar 文件。 为了消除上述代码中存在的错误,请添加相应的 jar 文件。 右键单击 Java 项目,然后选择“属性”。 ![](https://img.kancloud.cn/d6/ae/d6ae2955d29d58c9b7fbc2bba2eba3cb_438x731.png) **步骤 8)**在属性窗口中, 1. 单击左侧导航窗格上的 Java Build 路径。 2. 点击库标签, 3. 单击添加外部 JAR,然后选择 Selenium 独立 jar 文件 4. 点击“确定”按钮。 ![](https://img.kancloud.cn/10/39/103906a72d381c16dcf0628f6301a287_800x554.png) 完成此步骤后,所有错误将自动删除。 如果没有,则将鼠标放在显示错误的代码上,并导入所有必需的类和接口。 对于@test,如果仍然显示错误,则将鼠标放在该位置。 它将显示可能的选项。 然后单击添加 TestNG 库选项。 同样,对其他“班级”也要这样做。 在两个类(即 DemoA 和 DemoB)中编写代码后,请转到下一步。 **步骤 9)**在此步骤中, 1. 右键单击项目,然后 2. Select option folder to create a folder called 'lib' and paste testNG jar file and selenium jar file (selenium-server-standalone<version>). (需要从 Web 下载 Testng 和 Selenium-server-standalone jar 文件并将其存储在系统中。您需要手动转到该文件夹​​并复制这两个 jar,然后右键单击 eclipse 中的'lib'文件夹,然后单击 糊) ![](https://img.kancloud.cn/d9/e6/d9e6f2c005c5544ca80839126e720b0a_736x391.png) **步骤 10)**在此步骤中, 1.选择父文件夹 2.将文件夹名称命名为“ lib”,(在 lib 文件夹中添加这两个 jar 文件的主要目的是,在命令提示符下执行时,您可以告诉编译器执行程序所需的 jar 文件 位于此位置。如果要从 eclipse 执行 testng.xml,则完全不需要此 lib 文件夹) 3.点击“完成”按钮 ![](https://img.kancloud.cn/45/6b/456bde4f393267c319781d54fb3123e9_521x604.png) 需要从 Web 下载 Testng 和 Selenium-server-standalone jar 文件并将其存储在系统中。 您需要手动转到该文件夹​​并复制这两个 jar,然后右键单击 Eclipse 中存在的“ lib”文件夹,然后单击“粘贴” 创建文件夹后,下一步就是将我们的程序 DemoA 和 DemoB 转换为 Testng.xml 文件。 ### 将硒项目转换并执行为 TestNG **步骤 1)**在此步骤中, 1. 选择该包下存在的两个 Java 文件,然后单击鼠标右键。 2. 选择名为“ testNG”的选项。 3. 单击转换为“ testNG”。 ![](https://img.kancloud.cn/7c/38/7c38d29e55ccdbed4539956343cff09c_702x752.png) **步骤 2)**将打开一个新窗口。 在此窗口中,输入详细信息,例如 1. 位置 2. 套房名称 3. 测试名称 4. 班级选择 5. 平行模式 6. 点击“完成”按钮 ![](https://img.kancloud.cn/29/34/2934efb5f7507237524d4432e96e3142_614x691.png) 然后在 java 项目下创建了 testng.xml 文件,它看起来像这样。 ![](https://img.kancloud.cn/6e/46/6e46b72d443c51f618623b9e4b2cabfa_349x219.png) (如果要运行该 testng.xml 文件,请右键单击 Package Explorer 左导​​航窗格中存在的那个 testng.xml 文件,然后单击以 TestNG Suite 运行。) **步骤 3)** testng.xml 套件文件如下所示: ![](https://img.kancloud.cn/f2/15/f215732a738a5a135672874cb1ac131b_449x187.png) 如果要先执行 DemoA 类,则删除该完整行,然后将其添加到 DemoB 类之前,如下所示: ![](https://img.kancloud.cn/28/8e/288e92c9a88ebe6246492f9ad199f389_439x190.png) ![](https://img.kancloud.cn/69/8e/698e04feafe11f2b4475228f5ee6de5f_713x614.png) **步骤 4)**执行 testng.xml 文件后,它将以以下方式显示结果。 (由于尚未使用 System.out.println()编写任何可执行语句,因此它不会在控制台窗口上打印任何内容)。 ![](https://img.kancloud.cn/7a/eb/7aeb1b32ae1ab9519bc57bb58fce9399_505x172.png) 这是通过 Eclipse 执行测试的方法之一,如果要从命令提示符处执行包含两个类文件(例如 DemoA,DemoB)的相同 testng.xml 套件文件,则需要执行以下步骤。 现在打开命令提示符,然后转到 Project 工作区。 ## 通过命令行执行 TestNG 您需要找到项目空间的位置 **步骤 1)**首先右键单击 Java 项目,然后选择属性选项。 在属性窗口中,选择选项资源。 ![](https://img.kancloud.cn/d6/ae/d6ae2955d29d58c9b7fbc2bba2eba3cb_438x731.png) **步骤 2)**现在,当您单击左侧导航窗格中的“资源”链接时。 它将显示项目的确切存储位置 ![](https://img.kancloud.cn/c1/85/c18566c8c842b913df73a6cddac4fa0c_791x559.png) 项目工作区为 **C:\ Users \ User \ Desktop \ Guru99 \ TestProject** 。 因此,您要将目录更改为该特定位置。 **步骤 3)**然后键入以下命令。 (此命令是通用命令) [![](https://img.kancloud.cn/03/e9/03e96e7cff17a1cf7ebbcee368f527b9_557x129.png) ](/images/8-2016/090116_1045_TestNGTutor37.png) java –cp“工作空间\ *中存在 lib 文件夹的路径;项目工作空间中存在 bin 文件夹的路径;项目工作空间的 lib 文件夹中存在的 testng.jar 文件的路径” org.testng.TestNG testng.xml 但是对于我们的项目,您需要编写以下命令。 ``` Java –cp "C:\Users\User\Desktop\Guru99\TestProject\lib\*; C:\Users\User\Desktop\Guru99\TestProject\bin" org.testng.TestNG testng.xml ``` **步骤 4)**然后按 Enter。 DemoA 和 DemoB 这两个类都将开始执行。 最后,它将在命令提示符下显示结果。 ![](https://img.kancloud.cn/b5/bc/b5bc1cea3ee2b749ea70b16713423245_802x372.png) ### 如何仅运行失败的测试用例 如果要通过 Eclipse 仅执行失败的测试用例,请首先刷新项目。 **步骤 1)**右键单击 Java 项目(演示 A 和 B)。 选择刷新选项,或者直接选择 Java 项目并按 F5。 **步骤 2)**然后,您将可以看到测试输出文件夹。 在该文件夹中,您有一个名为 testng-failed.xml 的文件。 ![](https://img.kancloud.cn/9c/e2/9ce22e1cc7711ca049dd8f9330ff2c4e_340x601.png) **步骤 3)**右键单击此文件,然后单击运行方式,然后选择称为“ testNG suite”的选项。 假设如果所有测试用例都成功执行,则如果您有三个测试用例,则意味着您无法在 test-output 文件夹下看到此文件夹。 仅当其中一个测试用例失败时,此文件夹才会出现。 然后运行此文件,它将仅运行失败的测试用例。 ![](https://img.kancloud.cn/2f/cb/2fcbcf780023f1417f577e0a5f88c4ef_769x607.png) ### 从命令行运行 testng-failed.xml 文件 **步骤 1)**在命令提示符下运行失败的测试用例。 打开命令提示符,然后转到“项目”工作区。 [![](https://img.kancloud.cn/f4/ac/f4ac6ba393361000eb76a346b03c43cc_439x89.png) ](/images/8-2016/090116_1045_TestNGTutor41.png) 我的项目工作区为 **C:\ Users \ User \ Desktop \ Guru99 \ TestProject** 。 因此,您将目录更改为该特定位置。 **步骤 2)**键入以下命令。 (此命令是通用命令) java –cp“在工作区\ *中存在 lib 文件夹的路径;在项目工作区中存在 bin 文件夹的路径;在项目工作区的 lib 文件夹中存在的 testing.jar 文件的路径” org.testng.TestNG 测试输出/测试失败。 XML 文件 对于我们的项目,您需要编写以下命令。 ``` Java –cp "C:\Users\User\Desktop\Guru99\TestProject\lib\*; C:\Users\User\Desktop\Guru99\TestProject\bin" org.testng.TestNG test-output/testng-failed.xml ``` **步骤 3)**然后按 Enter。 它将仅运行失败的类,并且显示仅与该类相对应。 在上面的类中,即 DemoB 只需更改代码即可。 ``` driver.findElement(By.name("a")).sendKeys("Bye"); ``` 上面的代码将找不到任何元素。 因此,它将引发异常。 但是在我们的程序中,您没有处理异常,因此我们的程序将停止执行其余代码。 因此,ClassB 将失败。 ![](https://img.kancloud.cn/73/82/73829d0659f8eb8dc69b8e8e67ff41d4_642x255.png) **摘要**: * TestNG 是自动化测试框架,它受 Junit 的启发,并包含不同的注释。 * TestNG 在其标准报告中生成报告,其中包含以下内容: * 有多少个测试用例? * 通过了多少个测试用例? * 有多少测试用例失败? * 跳过多少个测试用例? * 通过将测试类转换为测试套件文件,可以轻松地将多个测试用例分组并执行它们。 * TestNG 可以轻松地与其他第三方工具集成。 它提供了不同的功能,例如为测试用例分配优先级,使用调用计数多次执行相同的测试用例。 * 如果在执行多个测试用例时任何一个测试用例失败,则可以分别执行该特定测试用例。 * Reporter 类的静态方法“ log”可用于存储 org.testng 中存在的日志记录信息 本文由 **Sandeep Batageri** 提供