提交 20a4afb0 编写于 作者: W wizardforcel

2020-06-05 23:06:25

上级 074d2323
# TestNG –如何禁用/忽略测试方法
# TestNG – 如何禁用/忽略测试方法
> 原文: [https://howtodoinjava.com/testng/testng-how-to-disableignore-test-method/](https://howtodoinjava.com/testng/testng-how-to-disableignore-test-method/)
在执行 **TestNG** 测试时,可能在某些情况下可能需要**禁用特定测试或一组测试**才能执行。 例如,考虑由于某些测试属于某些无法执行的场景而导致功能中存在严重错误的场景。 由于问题已经被发现,我们可能需要**禁止执行上述测试方案**
**禁用 TestNG** 中的测试可以通过将`@Test`注解的`enable`属性设置为 ***false*** 来实现。 这将使所述测试方法无法作为测试套件的一部分执行。 如果在类级别为 Test 注解设置了此属性,则将禁用该类内的所有公共方法。
**禁用 TestNG** 中的测试可以通过将`@Test`注解的`enable`属性设置为`false`来实现。 这将使所述测试方法无法作为测试套件的一部分执行。 如果在类级别为`Test`注解设置了此属性,则将禁用该类内的所有公共方法。
```java
@Test( enabled=false )
......@@ -55,6 +55,6 @@ PASSED: testMethodThree
```
如您在前面的结果中所看到的,TestNG 仅执行了两种方法。 测试执行将忽略属性启用值为 false 的方法。 **默认情况下,启用的属性值为**,因此即使未指定属性值,您也可以看到名称为`testMethodThree()`的测试方法已由 TestNG 执行。
如您在前面的结果中所看到的,TestNG 仅执行了两种方法。 测试执行将忽略属性启用值为`false`的方法。 **默认情况下,属性启用值为`true`**,因此即使未指定属性值,您也可以看到名称为`testMethodThree()`的测试方法已由 TestNG 执行。
学习愉快!
\ No newline at end of file
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/testng/testng-executing-parallel-tests/](https://howtodoinjava.com/testng/testng-executing-parallel-tests/)
[TestNG](https://testng.org/) **并行执行**测试,类和套件以及示例。 了解如何在多个线程中并行或单个运行 testng 测试和套件。
[TestNG](https://testng.org/) **并行执行**测试,类和套件以及示例。 了解如何在多个线程中并行或单个运行 testng 测试和套件。
在软件方面,并行性或多线程定义为软件,操作系统或程序同时执行另一个程序的多个部分或子组件的能力。 TestNG 允许测试以并行或多线程模式运行。 这意味着基于测试套件的配置,不同的线程将同时启动,并在其中执行测试方法。 与正常执行相比,这给用户带来了很多优势,主要是减少了执行时间和验证多线程代码的能力。
......@@ -20,8 +20,8 @@ Table Of Contents
并行或多线程执行可以为用户提供很多优势。 以下是两个:
1. **减少了执行时间** –并行执行测试时,会同时执行多个测试,因此减少了执行测试所需的总时间。
2. **允许多线程测试** –使用此功能,我们可以编写测试来验证应用中的某些多线程代码。
1. **减少了执行时间** 并行执行测试时,会同时执行多个测试,因此减少了执行测试所需的总时间。
2. **允许多线程测试** 使用此功能,我们可以编写测试来验证应用中的某些多线程代码。
*并行测试执行*被 QA 行业广泛用于功能自动化测试。 此功能可帮助质量检查人员配置其测试,以使其易于同时在多个浏览器或操作系统中执行。
......@@ -31,7 +31,7 @@ Table Of Contents
TestNG 提供了多种方法**在多线程条件**中执行测试,其中一种方法是在单个线程中执行每种测试方法。 此模式显着减少了执行时间,因为可以并行执行更多测试,从而减少了总执行时间。
testng 中用于**并行测试执行**的 Java 程序。 这是一个如何使用单个类文件中的 testng xml 并行运行方法的示例。
testng 中用于**并行测试执行**的 Java 程序。 这是一个如何使用单个类文件中的`testng xml`并行运行方法的示例。
```java
package com.howtodoinjava.parallelism;
......@@ -98,13 +98,13 @@ After test-method. Thread id is: 9
```
Note that the `Id` value shown in the previous screenshot may not be the same in your console output. The Id value is assigned at runtime by the Java virtual machine (JVM) during execution.
注意,上一个屏幕截图中显示的`Id`值在控制台输出中可能会不同。 `Id`值是在执行期间由 Java 虚拟机(JVM)在运行时分配的。
先前的测试结果清楚地表明,每种测试方法及其各自的`before``after`方法都是在不同的线程中执行的。 这由控制台上打印的线程的 ID 标识。
## 2\. 并行运行 testng 测试类
在此示例中,我们将了解`executing testng test classes in parallel`; 属于测试执行的每个测试类都将在其自己的线程中执行。
在此示例中,我们将了解并行执行 testng 测试类; 属于测试执行的每个测试类都将在其自己的线程中执行。
```java
public class ParallelClassesTestOne
......@@ -180,7 +180,7 @@ public class ParallelClassesTestTwo
```
Select this file in Eclipse and run it as a TestNG suite. You will see the following test result in the Console window:
在 Eclipse 中选择此文件并将其作为 TestNG 套件运行。 您将在“控制台”窗口中看到以下测试结果:
```java
Before test-class. Thread id is: 10
......@@ -272,7 +272,7 @@ public class ParallelSuiteTest
```
Select this file in Eclipse and run it as a TestNG suite. You will see the following test result in the Console window:
在 Eclipse 中选择此文件并将其作为 TestNG 套件运行。 您将在“控制台”窗口中看到以下测试结果:
```java
Before test Test One. Thread id is: 9
......@@ -307,9 +307,9 @@ public class IndependentTest
```
通过使用 ***threadPoolSize*** 属性以及“测试”注解,该方法被配置为在多线程模式下运行。 ***threadPoolSize*** 的值设置为 3; 这将测试方法配置为在三个不同的线程中运行。
通过使用`threadPoolSize`属性以及“测试”注解,该方法被配置为在多线程模式下运行。 `threadPoolSize`的值设置为 3; 这将测试方法配置为在三个不同的线程中运行。
其他两个属性 ***invocationCount*** 和 ***timeOut*** ,将测试配置为多次调用,并且如果执行花费很多,则失败 更多时间。
其他两个属性`invocationCount``timeOut`,将测试配置为多次调用,并且如果执行花费很多,则失败 更多时间。
在项目下创建一个名为`independent-test-testng.xml`的新文件,并编写以下代码。
......@@ -324,7 +324,7 @@ public class IndependentTest
```
Select this file in Eclipse and run it as a TestNG suite. You will see the following test result in the Console window:
在 Eclipse 中选择此文件并将其作为 TestNG 套件运行。 您将在“控制台”窗口中看到以下测试结果:
```java
Test method executing on thread with id: 11
......@@ -336,6 +336,6 @@ Test method executing on thread with id: 10
```
在此,根据 ***invocationCount*** 属性值多次执行测试方法。 每次执行均在单独的线程中完成,该线程从测试报告输出中清晰可见。 当您只想在多线程模式下而不是整个测试套件中运行固定数量的测试方法时,此功能很有用。
在此,根据`invocationCount`属性值多次执行测试方法。 每次执行均在单独的线程中完成,该线程从测试报告输出中清晰可见。 当您只想在多线程模式下而不是整个测试套件中运行固定数量的测试方法时,此功能很有用。
学习愉快!
\ No newline at end of file
# TestNG –相关测试示例
# TestNG – 依赖测试示例
> 原文: [https://howtodoinjava.com/testng/testng-dependent-tests-examples/](https://howtodoinjava.com/testng/testng-dependent-tests-examples/)
**依赖项**是 TestNG 中的一项功能,它允许测试方法依赖于单个或一组测试方法。 这将有助于**执行一组要在测试方法**之前执行的测试。 仅当“ ***依赖方法*** ”是同一类或任何继承的基类的一部分时(即,在扩展类时),方法依赖才有效。
**依赖项**是 TestNG 中的一项功能,它允许测试方法依赖于单个或一组测试方法。 这将有助于**执行一组要在测试方法**之前执行的测试。 仅当“***依赖方法***”是同一类或任何继承的基类的一部分时(即,在扩展类时),方法依赖才有效。
在本教程中,我们将学习如何在 TestNG 中创建依赖测试。
......@@ -36,7 +36,7 @@ public class DependentTestExamples
```
前面的测试类包含两个测试方法,这些方法在执行时将消息名称打印到控制台上。 在此,测试方法`testOne`取决于测试方法`testTwo`。 在使用“测试”注解时,通过使用属性 ***dependsOnMethods*** 进行配置。
前面的测试类包含两个测试方法,这些方法在执行时将消息名称打印到控制台上。 在此,测试方法`testOne`取决于测试方法`testTwo`。 在使用`Test`注解时,通过使用属性`dependsOnMethods`进行配置。
现在开始运行测试。
......@@ -75,7 +75,7 @@ public class DependentTestExamples
```
前面的测试类包含三种测试方法,这些方法在执行时会将消息名称打印到控制台上。 这里的测试方法`testOne`取决于测试方法`testTwo``testThree`。 在使用“测试”注解时,通过使用属性 ***dependsOnMethods*** 进行配置。
前面的测试类包含三种测试方法,这些方法在执行时会将消息名称打印到控制台上。 这里的测试方法`testOne`取决于测试方法`testTwo``testThree`。 在使用`Test`注解时,通过使用属性`dependsOnMethods`进行配置。
现在开始运行测试。
......@@ -124,9 +124,9 @@ public class DependentTestExamples extends ParentClassTest
```
前面的测试类包含两个测试方法,这些方法在执行时将消息名称打印到控制台上。 这里的测试方法`testThree`取决于测试方法`testOne`。 在使用“测试”注解时,通过使用属性 ***dependsOnMethods*** 进行配置。
前面的测试类包含两个测试方法,这些方法在执行时将消息名称打印到控制台上。 这里的测试方法`testThree`取决于测试方法`testOne`。 在使用`Test`注解时,通过使用属性 `dependsOnMethods`进行配置。
Let’s run the test now.
现在开始运行测试。
```java
Test four method in Inherited test
......@@ -142,7 +142,7 @@ PASSED: testThree
从测试结果中可以看出,执行的顺序为`testFour``testTwo``testOne`,最后是`testThree`。 由于`testThree`依赖于`testOne``testTwo`,因此 TestNG 根据相关性执行所有测试方法,最后根据各自的测试方法执行所有测试方法。
## 取决于小组的测试
## 依赖组的测试
与依赖方法类似,TestNG 还允许测试方法依赖组。 这样可以确保在依赖测试方法之前执行一组测试方法。
......@@ -167,9 +167,9 @@ public class DependentTestExamples
```
The preceding test class contains two test methods which print a message name onto the console when executed. Here, test method `testOne` depends on test method `testTwo`. This is configured by using the attribute ***dependsOnMethods*** while using the Test annotation.
前面的测试类包含两个测试方法,这些方法在执行时将消息名称打印到控制台上。 这里,测试方法`testOne`取决于测试方法`testTwo`。 这是通过在使用`Test`注解时使用属性`dependsOnMethods`来配置的。
Let’s run the tests now.
现在开始运行测试。
```java
Group Test method three
......@@ -181,7 +181,8 @@ PASSED: groupTestOne
```
Method dependency only works with other methods that belong to the same class or in one of the inherited classes but not across different classes. In case you need a test method that exists in a separate class; you can achieve this by assigning the said test method to a group and configuring the dependent test method to be dependent on that group.
方法依赖项仅适用于属于同一类或一个继承的类中的其他方法,但不适用于不同类。 如果您需要一个存在于单独类中的测试方法,请执行以下操作: 您可以通过将所述测试方法分配给一个组并将依赖测试方法配置为依赖于该组来实现。
这些都与 TestNG 中的相关测试有关。 让我知道您是否有任何疑问。
**学习愉快!**
\ No newline at end of file
**学习愉快!**
\ No newline at end of file
# TestNG –超时测试教程
# TestNG – 超时测试教程
> 原文: [https://howtodoinjava.com/testng/testng-timeout-test-tutorial/](https://howtodoinjava.com/testng/testng-timeout-test-tutorial/)
在运行测试时,某些情况下可能会卡住某些测试,或者可能花费比预期更长的时间。 在这种情况下,您可能需要将所述测试用例标记为失败,然后继续。 在本教程中,我们将学习**将 TestNG 测试配置为在某些配置的持续时间后超时**
TestNG 允许用户设置**的时间段,以等待测试完全执行**。 超时可以通过两种方式配置:
TestNG 允许用户设置**时间段**,以等待测试完全执行。 超时可以通过两种方式配置:
* **在套件级别:**这将适用于上述 TestNG 测试套件中的所有测试
* **在每个测试方法级别:**这将适用于所述测试方法,并且如果在套件级别配置,则将覆盖时间段
* **在套件级别**这将适用于上述 TestNG 测试套件中的所有测试
* **在每个测试方法级别**这将适用于所述测试方法,并且如果在套件级别配置,则将覆盖时间段
要指定超时持续时间,请使用`@Test`注解的“ ***timeOut*** ”属性。
要指定超时持续时间,请使用`@Test`注解的“`timeOut`”属性。
```java
@Test ( timeOut = 500 )
......
# TestNG @Parameters –测试参数示例
# TestNG `@Parameters` – 测试参数示例
> 原文: [https://howtodoinjava.com/testng/testng-parameters/](https://howtodoinjava.com/testng/testng-parameters/)
[TestNG](https://howtodoinjava.com/java-testng-tutorials/) 的重要功能之一是参数化。 此功能允许用户**将参数作为参数**传递给测试。 通过使用 **testng @Parameters** 注解支持此功能。
[TestNG](https://howtodoinjava.com/java-testng-tutorials/) 的重要功能之一是参数化。 此功能允许用户**将参数作为参数**传递给测试。 通过使用 testng `@Parameters`注解支持此功能。
我们可以通过两种方式为 testng 测试提供参数值。
1. 通过`testng.xml` XML 配置文件
2. 通过`DataProviders` [链接]
2. 通过`DataProviders`
> @Parameters 注解可用于任何@ Before,@ After,@ Factory 和@Test 注解方法。 它可以用于初始化变量并将其用于类,测试中,也可以用于整个测试执行。
> `@Parameters`注解可用于任何`@Before`,`@After`,`@Factory`和`@Test`注解方法。 它可以用于初始化变量并将其用于类,测试中,也可以用于整个测试执行。
## 1\. TestNG @Parameters –使用 testng.xml 测试参数
## 1\. TestNG `@Parameters` – 使用`testng.xml`测试参数
如果需要在运行时将一些简单的值(例如`String`类型)传递给测试方法,则可以使用这种通过 testng XML 配置文件发送参数值的方法。 您必须使用 **@Parameters** 注解将参数值传递给测试方法。
如果需要在运行时将一些简单的值(例如`String`类型)传递给测试方法,则可以使用这种通过 testng XML 配置文件发送参数值的方法。 您必须使用`@Parameters`注解将参数值传递给测试方法。
```java
@Parameters({ "param-name" })
......@@ -69,7 +69,7 @@ public class ParameterTest {
```
#### 1.2 testng.xml
#### 1.2 `testng.xml`
现在将`testng.xml`文件添加到项目根目录,并将以下代码放入其中。 在这里,我们定义要传递的参数值。
......@@ -137,11 +137,11 @@ Total tests run: 3, Failures: 0, Skips: 0
从测试结果中可以看出,只有`timeTestTwo()`被执行,因为它的执行时间少于`testng.xml`文件中定义的超时时间。 `timeTestOne()`执行被取消,因为完成所需的时间超过配置的超时时间。
## 2\. TestNG @Parameters –可选参数
## 2\. TestNG `@Parameters` – 可选参数
TestNG 还提供了提供**可选参数**的选项,如果在定义的文件中找不到参数值,则将使用此值。
#### 2.1 使用@Optional 注解进行测试
#### 2.1 使用`@Optional`注解进行测试
要传递可选参数,请使用`@Optional`注解。
......@@ -165,11 +165,11 @@ public class ParameterTest
前面的类文件包含一个将一个参数作为输入的测试方法。 所述执行中的测试方法打印使用`System.out.println`方法传递到控制台的参数值。
使用 XML 文件中名为 ***可选值*** 的参数将参数值传递到测试方法。 使用针对所述参数的`@Optional`注解定义所述参数的可选值。
使用 XML 文件中名为`optional-value`的参数将参数值传递到测试方法。 使用针对所述参数的`@Optional`注解定义所述参数的可选值。
#### 2.2 使用@Optional 注解进行测试
#### 2.2 使用`@Optional`注解进行测试
在此`testng.xml`文件中,上面定义了两个测试。 在第一个测试中未定义任何参数,第二个测试在其中声明了一个名为“ ***可选值*** ”的参数。
在此`testng.xml`文件中,上面定义了两个测试。 在第一个测试中未定义任何参数,第二个测试在其中声明了一个名为“`optional-value`”的参数。
```java
<suite name="Optional test Suite" verbose="1">
......@@ -208,7 +208,7 @@ Total tests run: 2, Failures: 0, Skips: 0
```
从先前的测试结果可以看出,TestNG 在第一次执行测试时就将可选值传递给了测试方法。 发生这种情况是因为 TestNG 在第一次测试中无法在 XML 文件中找到名为 ***可选值*** 的参数。
从先前的测试结果可以看出,TestNG 在第一次执行测试时就将可选值传递给了测试方法。 发生这种情况是因为 TestNG 在第一次测试中无法在 XML 文件中找到名为`optional-value`的参数。
在第二次测试期间,它在 XML 中找到了参数值,并将该值传递给执行过程中的测试方法。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册