在本教程中,将了解
- 创建一个Selenium项目
- 将Selenium工程转换为TestNG并执行
- 通过命令行执行TestNG
- 如何仅运行失败的测试用例
- 从命令行运行testng-ailed.xml文件
创建一个Selenium项目
准备项目
步骤1) 在Eclipse中,创建 Java语言 通过单击新建Java项目进行项目
步骤2) 在这一步中,
- 提供项目名称
- 选择执行环境
- 选择项目布局选项
- 单击“完成”按钮。
当单击“完成”按钮时。“TestProject”将如下所示。
步骤3) 打开新创建的项目。将能够在package Explorer中看到“src”文件夹。
- 右键单击项目并选择“新建”
- 选择选项包
步骤4) 在这一步中,
- 浏览src文件夹并选择Package
- 给出软件包名称,然后
- 最后,单击Finish按钮。(包名->com.test)
单击“Finish”后,项目结构将如下所示:
步骤5) 在这一步中,
- 现在,右键单击新创建的包,然后
- 选择选项“类”。
将打开一个新窗口。
步骤6) 在这一步中,
- 给出“类”的名称
- 选择修改量
- 浏览并选择超类java.lang.object
- 单击完成按钮。
在这里,将创建两个类,例如: 演示A、演示 。
首先创建类DemoA。
当单击“完成”按钮时。然后它将像这样创建类:
同样,创建Demo8,当单击“Finish”按钮时,类将如下所示-
步骤7) 如果已经安装了TestNG库,只需单击Java Project->Properties。
步骤8) 现在,在属性窗口中,
- 单击Java Build Path
- 单击Libraries
- 单击Add Library(添加库)。
下一步
- 点击“TestNG”,然后
- 点击“下一步”。
然后点击“完成”按钮。
在此之后,编写以下代码。 针对类DemoA
代码说明:
- driver.manage().window().max();
此行将最大化浏览器窗口。
- driver.get(https://www.itxiaonv.com) ;
此行将在URL字段中输入指定的URL。
- driver.findElement(By.name(“q”) ).sendKeys(“Hi”);
该行将标识搜索框,并输入使用sendKeys方法发送的数据。
输出:以上程序包含错误,无法执行。类似地,对于类演示,
红色下划线的单词是这里的错误。因还没有添加右键单击Java项目并选择“属性”。
步骤8) 在属性窗口中,
- 单击左侧导航窗格上的Java build path。
- 单击Libraries选项卡,
- 单击Add External Jars并选择Selenium独立JAR文件
- 单击“确定”按钮。
完成此步骤后,将自动删除所有错误。如果没有,则将鼠标放在显示错误的代码上,并导入所有必要的类和接口。
对于@test,如果它仍然显示错误,则将鼠标放在那里。同样,对其他“类”也是如此。
在两个类(即演示A、演示B转到下一步。
步骤9) 在这一步中,
- 右键单击该项目,然后
- 选择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) 在这一步中,
- 选择包下面的两个java文件,然后单击鼠标右键。
- 选择名为“TestNG”的选项。
- 单击Convert to“TestNG”(转换为“TestNG”)。
步骤2) 将打开一个新窗口。在此窗口中,输入详细信息,如
- Location
- Suite Name
- Test Name
- Class Selection
- Parallel Mode
- 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中存在的日志记录信息