在TestNG中执行失败的测试用例

在本教程中,将了解

  • 创建一个Selenium项目
  • 将Selenium工程转换为TestNG并执行
  • 通过命令行执行TestNG
  • 如何仅运行失败的测试用例
  • 从命令行运行testng-ailed.xml文件

创建一个Selenium项目

准备项目

步骤1) 在Eclipse中,创建 Java语言 通过单击新建Java项目进行项目

步骤2) 在这一步中,

  1. 提供项目名称
  2. 选择执行环境
  3. 选择项目布局选项
  4. 单击“完成”按钮。

当单击“完成”按钮时。“TestProject”将如下所示。

步骤3) 打开新创建的项目。将能够在package Explorer中看到“src”文件夹。

  1. 右键单击项目并选择“新建”
  2. 选择选项包

步骤4) 在这一步中,

  1. 浏览src文件夹并选择Package
  2. 给出软件包名称,然后
  3. 最后,单击Finish按钮。(包名->com.test)

单击“Finish”后,项目结构将如下所示:

步骤5) 在这一步中,

  1. 现在,右键单击新创建的包,然后
  2. 选择选项“类”。

将打开一个新窗口。

步骤6) 在这一步中,

  1. 给出“类”的名称
  2. 选择修改量
  3. 浏览并选择超类java.lang.object
  4. 单击完成按钮。

在这里,将创建两个类,例如: 演示A、演示 。

首先创建类DemoA。

当单击“完成”按钮时。然后它将像这样创建类:

同样,创建Demo8,当单击“Finish”按钮时,类将如下所示-

步骤7) 如果已经安装了TestNG库,只需单击Java Project->Properties。

步骤8) 现在,在属性窗口中,

  1. 单击Java Build Path
  2. 单击Libraries
  3. 单击Add Library(添加库)。

下一步

  1. 点击“TestNG”,然后
  2. 点击“下一步”。

然后点击“完成”按钮。

在此之后,编写以下代码。 针对类DemoA

代码说明:

  • driver.manage().window().max();

此行将最大化浏览器窗口。

  • driver.get(https://www.itxiaonv.com) ;

此行将在URL字段中输入指定的URL。

  • driver.findElement(By.name(“q”) ).sendKeys(“Hi”);

该行将标识搜索框,并输入使用sendKeys方法发送的数据。

输出:以上程序包含错误,无法执行。类似地,对于类演示,

红色下划线的单词是这里的错误。因还没有添加右键单击Java项目并选择“属性”。

步骤8) 在属性窗口中,

  1. 单击左侧导航窗格上的Java build path。
  2. 单击Libraries选项卡,
  3. 单击Add External Jars并选择Selenium独立JAR文件
  4. 单击“确定”按钮。

完成此步骤后,将自动删除所有错误。如果没有,则将鼠标放在显示错误的代码上,并导入所有必要的类和接口。

对于@test,如果它仍然显示错误,则将鼠标放在那里。同样,对其他“类”也是如此。

在两个类(即演示A、演示B转到下一步。

步骤9) 在这一步中,

  1. 右键单击该项目,然后
  2. 选择Option Folder以创建名为‘lib’的文件夹,并粘贴TestNG JAR文件和Selenium JAR文件(Selenium-server-Standalone<version>)。

(需要从Web下载TestNG和Selenium-server独立JAR文件,并将其存储在系统中。需要手动转到该文件夹并复制这两个JAR,然后右键单击Eclipse中出现的‘lib’文件夹,然后单击粘贴)

步骤10) 在这一步中,

1. 选择父文件夹

2. 将文件夹名为‘lib’和(在lib文件夹中添加这两个JAR文件的主要目的是,在命令提示符下执行时,可以告诉编译器执行程序所需的JAR文件位于此位置。如果想从Eclipse执行testng.xml,那么这个lib文件夹根本不是必需的)

3. 单击“Finish”(完成)按钮

需要从Web下载TestNG和Selenium服务器独立JAR文件,并将其存储在系统中。需要手动转到该文件夹并复制这两个JAR,然后右键单击Eclipse中的‘lib’文件夹,然后单击粘贴

创建文件夹后,下一步将是将我们的DemoA和DemoB程序转换为Testng.xml文件。

将Selenium工程转换为TestNG并执行

步骤1) 在这一步中,

  1. 选择包下面的两个java文件,然后单击鼠标右键。
  2. 选择名为“TestNG”的选项。
  3. 单击Convert to“TestNG”(转换为“TestNG”)。

步骤2) 将打开一个新窗口。在此窗口中,输入详细信息,如

  1. Location
  2. Suite Name
  3. Test Name
  4. Class Selection
  5. Parallel Mode
  6. Click on “Finish” button

然后在java项目下创建testng.xml文件,它将如下所示。

(如果想运行testng.xml文件,那么右键单击package Explorer左侧导航窗格中的testng.xml文件,然后单击Run as TestNG Suite。)

步骤3) testng.xml套件文件将如下所示:

如果要首先执行DemoA类,则删除完整行并将其添加到DemoB类之前,如下所示:

步骤4) 执行testng.xml文件后,它将以以下方式显示结果。(因没有使用System.out.println() 编写任何可执行语句,所以它不会在控制台窗口上打印任何内容)。

这是将通过Eclipse执行测试的方法之一,如果希望从命令提示符处执行包含两个类文件(如DemoA、DemoB)的相同testng.xml套件文件,则需要遵循以下步骤。

现在打开命令提示符并转到Project工作区。

通过命令行执行TestNG

需要找到项目空间的位置

步骤1) 首先右键单击Java项目并选择属性选项。在“属性”窗口中,选择“选项资源”。

步骤2) 现在,当单击“资源”链接时,会出现在左侧导航窗格中。它将显示项目的确切存储位置

项目工作区为 C:99。因此,要将目录更改为该特定位置。

步骤3) 然后键入以下命令。(此命令是通用命令)

java-cp“工作区中存在的lib文件夹路径\*;项目工作区“org.testng.TestNG testng.xml”的lib文件夹中存在的testng.jar文件的路径

但是对于我们的项目,需要编写以下命令。

 Java –cp  "C:\Users\User\Desktop\Guru99\TestProject\lib\*;
C:\Users\User\Desktop\Guru99\TestProject\bin" org.testng.TestNG testng.xml
 

步骤4) 然后按Enter键。演示A类和演示类最后,它将在命令提示符上显示结果。

如何仅运行失败的测试用例

如果想通过Eclipse只执行失败的测试用例,那么首先刷新项目。

步骤1) 右键单击Java项目(DemoA和DemoB)。选择刷新选项或简单地选择Java项目并按F5。

步骤2) 然后,将能够看到测试输出文件夹。在该文件夹中,有一个名为testng-ailed.xml的文件。

步骤3) 右键单击此文件,然后单击Run As并选择名为“TestNG Suite”的选项。

假设有三个测试用例,如果所有测试用例都成功执行,则意味着不能在test-output文件夹下看到此文件夹。然后运行此文件,它将只运行失败的测试用例。

从命令行运行testng-ailed.xml文件

步骤1) 在命令提示符下运行失败的测试用例。打开命令提示符,然后转到项目工作空间。

我的项目工作区是 C:99。因此,将把目录更改为该特定位置。

步骤2) 键入以下命令。(此命令是通用命令)

java-cp“工作区中存在的lib文件夹路径\*;项目工作区“org.testng.TestNG test-output/testng-ailed.xml”的lib文件夹中存在的testing.jar文件的路径

对于我们的项目,需要编写以下命令。

 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");
 

上面的代码将不会找到任何元素。但是在我们的节目中由于这个原因,B类将会失败。

总结 :

  • TestNG是自动化测试框架,灵感来自Junit,包含不同的注释。
  • TestNG在其标准报告中生成报告,该报告包含以下内容:
    • 一共有多少个测试用例?
    • 通过了多少个测试用例?
    • 有多少测试用例失败?
    • 跳过了多少个测试用例?
  • 通过将测试类转换为测试套件文件,可以方便地对多个测试用例进行分组和执行。
  • TestNG可以很容易地与其他第三方工具集成。它提供了不同的功能,比如为测试用例分配优先级,使用调用计数多次执行相同的测试用例。
  • 如果任何测试用例在执行多个测试用例时失败,可以单独执行该特定测试用例。
  • Reporter类的静态方法“log”可用于存储org.testng中存在的日志记录信息

IT赶路人

专注IT知识分享