首页 > 其他分享 >【测试文章搬运】创建泛型和测试套件

【测试文章搬运】创建泛型和测试套件

时间:2024-06-23 17:11:21浏览次数:26  
标签:套件 测试 org 泛型 import junit

创建泛型和测试套件

泛型

根据字面概念,通用词可以作为整个组或类的描述。

在自动化应用程序时,我们会遇到各种端到端场景。端到端场景可能由几个简单的功能组成。因此,这些功能中的许多功能只需稍加修改或几乎无需修改即可作为多个测试脚本的通用功能。

因此,建议创建一个通用类,其中包含可以声称为通用并可以在多个测试脚本之间共享的方法,而不是为多个测试脚本一遍又一遍地实现相同的代码。

请注意,泛型还在我们的框架中引入了可重用性功能。可重用性大大减少了代码、错误、缺陷、维护等所花费的时间。

泛型类型

#1)特定于应用程序

被测应用程序的微不足道的功能可以成为特定于应用程序的泛型的一部分。以登录功能为例。登录就是这样一种功能,它可以成为几乎所有测试脚本的片段。因此,我们不必在测试脚本中重新编写登录代码,而是在泛型类中创建一个通用方法并在需要时调用它。

#2)特定于框架

除了特定于应用程序的泛型之外,我们可能还有一些通用方法,这些方法与被测应用程序没有直接关系,但属于所选框架的一部分。当我们使用测试数据驱动框架时,请考虑 Excel 读取功能。

如果我们在所有测试脚本中一遍又一遍地编写读取 Excel 的代码,那就毫无意义了。因此,我们在通用类中引入一次代码,并在需要时调用它。

通用类的创建

用户可以根据注入的模块化来创建任意数量的通用类。

让我们通过创建泛型来理解泛型的概念。

步骤 1:创建一个新的 java 类“CommonMethods.java”,它将作为一个通用类,由一些常用方法组成,最好位于测试脚本所在的包中。

步骤#2:下一步是将下面的代码复制并粘贴到“CommonMethods.java”通用类中。在这个类的外围可以实现几个常用方法。

以下是登录功能的代码片段。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * Login the Test application * * @param username * @param password */ public void login(String username, String password) { try { // Enter User Name WebElement userName = driver.findElement(By.id("loginID")); userName.clear(); userName.sendKeys(username); // Enter Password WebElement passWord = driver.findElement(By.id("Password")); passWord.clear(); passWord.sendKeys(password); // Click on the Sign In Button WebElement signin = driver.findElement(By.id("SignIn_button")); signin.click(); driver.manage().window().maximize(); } catch (Exception e) { e.printStackTrace(); } }

请注意,上述方法是一种参数化方法。因此,相同的方法可以使用不同的测试数据来测试登录功能。

步骤 3:下一步是在测试脚本中调用通用方法。该过程分为两个步骤。首先,我们在测试类中创建通用类的实例,然后通过传递所需的参数来调用创建的实例中的通用方法。

在下面的代码片段中,我们创建了“TestScript1.java”类的实例,并调用login()方法来登录应用程序。

1 2 3 4 // Create Object of the generic class toolsObj = new Tools(); // Login the test application by calling the common method preTestObj.login(“username”, “password”);

需要注意的是,上述代码可以放在测试类中的任何位置。用户可以将代码放在setup()方法中,也可以放在test()方法中。

测试套件

测试套件是为执行目的而分组的多个测试脚本的集合。因此,测试套件可以无人值守地执行指定数量的测试脚本。测试套件可以引用要自动执行的测试脚本;用户只需为测试套件中的每个测试脚本标记一个条目即可。

该条目应该是带有“.class”扩展名的测试脚本的“类名”,或者只是我们的 Java 类的编译形式。

下面是用 Java 创建的示例测试套件。请注意,测试套件是基于 Java 的类,属于 JUnit 系列。因此,您可能会在代码中遇到多个 JUnit 注释。

Selenium 测试套件

代码片段

  package com.axway.webliv.tests; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.RunWith; import org.junit.runner.notification.Failure; import org.junit.runners.Suite; import com.axway.webliv.tests.MetaData.*;    @RunWith(Suite.class) @Suite.SuiteClasses({           ChangeStatusBinarySphereTest.class,        ChangeStatusRestrictionTest.class,        ChangeStatusDocSphereTest.class,       })    public class TestSuite {        /**         * Setup method to set system properties         */        @BeforeClass        public static void Setup() {        }        /**         * @param args         */        public static void main(String[] args) {               Result result = JUnitCore.runClasses(TestSuite.class);               System.out.println("TEST CASES RUN: " + result.getRunCount());               System.out.println("TEST CASES FAILED: " + result.getFailureCount());               for (Failure failure : result.getFailures()) {                      System.out.println("\nTEST NAME: " + failure.getTestHeader());                      System.out.println("\nERROR: " + failure.getMessage() + "\n");                      System.out.println(failure.getTrace());                      System.exit(1);               }        }        /**         * Report test results         */        @AfterClass        public static void TearDown() {                } }

代码演练

测试套件就是一个简单的 JUnit 类,它有 setup() 和 trashdown() 方法;我们在前面的教程中详细讨论了这两个方法。唯一显著的区别在于它能够一次性执行多个测试脚本。

导入语句

1 2 3 4 5 6 7 import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.RunWith; import org.junit.runner.notification.Failure; import org.junit.runners.Suite;

上述导入语句嵌入在类中,以便能够使用 JUnit 提供的各种注释。

 

导入 org.junit.runner.JUnitCore;
导入 org.junit.runner.RunWith;
导入 org.junit.runners.Suite;

上述语句具有执行由多个测试类组成的测试套件的底层架构。

导入 org.junit.runner.Result;

导入语句允许用户存储测试执行状态及其操作。

导入 org.junit.AfterClass;
导入 org.junit.BeforeClass;

这些 import 语句用于标识和注释 setup() 和 teadown() 方法。使用 BeforeClass 注释的 setup() 方法指示程序控制在每次测试脚本执行之前执行该方法。与 setup() 一样,使用 AfterClass 注释的 teadown() 方法指示程序控制在每次测试脚本执行之后执行该方法。

班级入口

1 2 3 4 5 6 @RunWith(Suite.<strong>class</strong>) @Suite.SuiteClasses({        ChangeStatusBinarySphereTest.<strong>class</strong>,        ChangeStatusRestrictionTest.<strong>class</strong>,        ChangeStatusDocSphereTest.<strong>class</strong>,        })

类的这一部分允许用户标记下次运行中要执行的测试脚本条目。请记住,这些条目以“.class”扩展名标记,即以编译格式标记。

执行——main()

1 2 3 4 5 6 7 8 9 10 11 public static void main(String[] args) { Result result = JUnitCore.runClasses(TestSuite.class); System.out.println("TEST CASES RUN: " + result.getRunCount()); System.out.println("TEST CASES FAILED: " + result.getFailureCount()); for (Failure failure : result.getFailures()) { System.out.println("\nTEST NAME: " + failure.getTestHeader()); System.out.println("\nERROR: " + failure.getMessage() + "\n"); System.out.println(failure.getTrace()); System.exit(1); } }

这部分代码处理执行。程序执行总是从 main() 开始。

JUnitCore 类的 runClasses 方法用于执行测试套件。“Result 类”及其方法用于根据通过和失败的测试用例确定执行状态。

因此,用户可以利用测试套件类进行实验以满足他/她的要求。

结论

在本教程中,我们尝试让您熟悉泛型和常用方法的概念。我们还讨论了泛型带来的好处,例如可重用性。我们还分享了创建泛型及其可访问性的实用方法。

以下是本文的关键内容:

    • 泛型可以作为整个组或类的描述。在我们的框架中,泛型是一个仅由可在多个测试类之间共享的方法组成的类。
    • 泛型可以分为两类:
      • 特定于应用程序
      • 特定于框架
    • 可以创建一个简单的 Java 类来充当泛型。在泛型类中,可以实现几个常用方法。这些方法可以是参数化方法。
    • 可以通过在测试脚本中调用通用类的实例来访问常用方法。
    • 测试套件是为执行目的而分组的多个测试脚本的组合。因此,测试套件可以无人值守地执行指定数量的测试脚本。
    • 测试套件就是一个简单的 JUnit 类,它有 setup() 和 trashdown() 方法;我们在前面的教程中详细讨论了这两个方法。唯一显著的区别在于它能够一次性执行多个测试脚本。

标签:套件,测试,org,泛型,import,junit
From: https://www.cnblogs.com/jin-wen-xin/p/18263636

相关文章

  • 【测试文章搬运】测试计划包含哪些要素?
    ComponentsOfAPlanDocumentItemsinaTestPlanTemplateWhatdotheycontain?Scope=>TestScenarios/Testobjectivesthatwillbevalidated.  Outofscope=>Enhancedclarityonwhatwearenotgoingtocover  Assumptions=&g......
  • 【测试文章搬运】用selenium并从excel里面读取测试数据——采用数据驱动测试自动化框
    SeleniumFrameworkCreationAndAccessingTestDataFromExcel–SeleniumTutorial在本系列的当前教程中,我们将为您提供一个示例框架,用于存储测试数据及其Excel操作的Excel。同样,我们将继续前进并引入新的策略和资源来完善我们的框架。让我们学习一下:使用示例项目的......
  • 【测试文章搬运】如何建立一个测试卓越中心(TCOE)
    HowToSetUpATestingCenterOfExcellence(TCoE)本综合指南详细介绍了什么是测试卓越中心以及如何设置TCoE。它包括优点和缺点、KPI和发展阶段:随着公司转向软件开发的新方式,测试作为一种集中式服务变得越来越普遍。组织正在寻找在多个团队中成功部署测试人员的方法,同时......
  • 三、mock 测试技术
    1.mock简介:mock技术主要分为两类:mock服务:实现mock功能的一个服务mock数据:mock一个对象,写入一些预期值mock模块是Python的测试框架unittest下的一个子库,可以模拟一个方法、一个对象或者一个类,然后使用模拟的对象替换系统的一部分,对系统的一......
  • python测试工程师 之 python基础大全【13万字总结】
    python基础大全【13万字】Day011、Python概述2、Python解释器和pycharmIDE工具3、Python中的注释4、变量5、标识符的命名规范★6、变量的使用7、Python中的数据类型★8、Python中的bug和调试9、字符串的格式化及输出★10、转译字符day021、转译字符2、f-string★3、......
  • 如何使用postman进行测试
    下载和安装:访问Postman的官方网站下载并安装Postman。启动Postman:打开Postman应用程序。创建一个新的请求:在Postman主界面,点击左下角的 + 号来创建一个新的请求标签。配置请求:在请求标签中,输入你的请求URL。选择请求方法(GET,POST,PUT,DELETE等)。设置请......
  • 【C#进阶】单元测试_2024-06-22
    单元测试什么是单元测试?想象一下,你在做一道大菜,每种食材的准备就是一个个小任务。单元测试就像是在烹饪前检查每样食材是否新鲜、切割是否恰当。在编程中,一个“单元”通常指的是代码中的最小可测试部分,比如一个方法。单元测试就是编写一小段代码,专门用来检查这个方法是否按预期......
  • 红队内网攻防渗透:内网渗透之内网对抗:横向移动篇&入口差异&切换上线&IPC管道&AT&SC任务
    红队内网攻防渗透1.内网横向移动1.1横向移动入口知识点1.1.1、当前被控机处于域内还是域外1.1.1.1在域内1.1.1.2不在域内1.1.1.2.1第一种方法提权到system权限1.1.1.2.2第二种方法切换用户上线1.1.1.2.3kerbrute枚举用户1.1.2、当前凭据为明......
  • VMware Workstation环境下,用作测试的客户端,ubuntu安装体验案例
    需求说明:作为学习者,为了学习网络技术,网络操作系统管理技术,学习者首先需要有台计算机,其次需要在自己的计算机安装学习要用到的网络操作系统、模拟软件等。但由于计算机上一般使用的是Windows10或Windows7桌面操作系统,而且或多或少有一些重要的数据、软件存放在硬盘里。那么......
  • 使用 Python 进行测试(7)...until you make it
    总结我很懒,我想用最少的行动实现目标,例如生成测试数据。我们可以:使用随机种子保证数据的一致性。>>>random.seed(769876987698698)>>>[random.randint(0,10)for_inrange(10)][10,9,1,9,10,6,5,10,1,9]>>>random.seed(769876987698698)>>>[random.r......