TestNG简略的学习(十一)TestNG学习总结ITeye - AG环亚娱乐集团

TestNG简略的学习(十一)TestNG学习总结ITeye

2019年03月01日13时35分12秒 | 作者: 冰蝶 | 标签: 办法,履行,测验 | 浏览: 1024

       最近一直在学习关于TestNG方面的常识,依据最近的学习总结以下几点:

1.TestNG测验注解和Junit注解的不同以及生命周期:

TestNG测验的一个办法的生命周期:

                @BeforeClass(履行一次)

                @BeforeMethod(N个Test 办法履行N次)

                @Test Test办法(此注解可能在类上表明多个,在办法表明一个)

                @AfterMethod(N个Test 办法履行N次)

                @AfterClass(履行一次)

Junit4测验的一个办法的生命周期:

               @BeforeClass(履行一次)

              @Before(N个Test 办法履行N次)

               @Test Test办法

              @After(N个Test 办法履行N次)

              @AfterClass(履行一次)

2.测验@Test的运用范围和分组

下面为源代码自己看不解说:

package org.testng.annotations;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
 * Mark a class or a method as part of the test.
 * @author Cedric Beust, Apr 26, 2004
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE, CONSTRUCTOR})
public @interface Test {
 * The list of groups this class/method belongs to.
 public String[] groups() default {};
 * Whether methods on this class/method are enabled.
 public boolean enabled() default true;
 * The list of variables used to fill the parameters of this method.
 * These variables must be defined in the property file.
 * @deprecated Use @Parameters
 @Deprecated
 public String[] parameters() default {};
 * The list of groups this method depends on. Every method
 * member of one of these groups is guaranteed to have been
 * invoked before this method. Furthermore, if any of these
 * methods was not a SUCCESS, this test method will not be
 * run and will be flagged as a SKIP.
 public String[] dependsOnGroups() default {};
 * The list of methods this method depends on. There is no guarantee
 * on the order on which the methods depended upon will be run, but you
 * are guaranteed that all these methods will be run before the test method
 * that contains this annotation is run. Furthermore, if any of these
 * methods was not a SUCCESS, this test method will not be
 * run and will be flagged as a SKIP.
 * If some of these methods have been overloaded, all the overloaded
 * versions will be run.
 public String[] dependsOnMethods() default {};
 * The maximum number of milliseconds this test should take.
 * If it hasnt returned after this time, it will be marked as a FAIL.
 public long timeOut() default 0;
 * The maximum number of milliseconds that the total number of invocations on this test
 * method should take. This annotation will be ignored if the attribute invocationCount
 * is not specified on this method.
 * If it hasnt returned after this time, it will be marked as a FAIL.
 public long invocationTimeOut() default 0;
 * The number of times this method should be invoked.
 public int invocationCount() default 1;
 * The size of the thread pool for this method. The method will be invoked
 * from multiple threads as specified by invocationCount.
 * Note: this attribute is ignored if invocationCount is not specified
 public int threadPoolSize() default 0;
 * The percentage of success expected from this method.
 public int successPercentage() default 100;
 * The name of the data provider for this test method.
 * @see org.testng.annotations.DataProvider
 public String dataProvider() default "";
 * The class where to look for the data provider. If not
 * specified, the dataprovider will be looked on the class
 * of the current test method or one of its super classes.
 * If this attribute is specified, the data provider method
 * needs to be static on the specified class.
 public Class ? dataProviderClass() default Object.class;
 * If set to true, this test method will always be run even if it depends
 * on a method that failed. This attribute will be ignored if this test
 * doesnt depend on any method or group.
 public boolean alwaysRun() default false;
 * The description for this method. The string used will appear in the
 * HTML report and also on standard output if verbose = 2.
 public String description() default "";
 * The list of exceptions that a test method is expected to throw. If no
 * exception or a different than one on this list is thrown, this test will be
 * marked a failure.
 public Class[] expectedExceptions() default {};
 * If expectedExceptions was specified, its message must match the regular expression
 * specified in this attribute.
 public String expectedExceptionsMessageRegExp() default ".*";
 * The name of the suite this test class should be placed in. This
 * attribute is ignore if @Test is not at the class level.
 public String suiteName() default "";
 * The name of the test this test class should be placed in. This
 * attribute is ignore if @Test is not at the class level.
 public String testName() default "";
 * @deprecated Use singleThreaded
 public boolean sequential() default false;
 * If set to true, all the methods on this test class are guaranteed to run
 * in the same thread, even if the tests are currently being run with parallel="true".
 * This attribute can only be used at the class level and will be ignored
 * if used at the method level.
 public boolean singleThreaded() default false;
 * The name of the class that should be called to test if the test
 * should be retried.
 * @return String The name of the class that will test if a test method
 * should be retried.
 public Class retryAnalyzer() default Class.class;
 * If true and invocationCount is specified with a value 1,
 * then all invocations after a failure will be marked as a SKIP
 * instead of a FAIL.
 public boolean skipFailedInvocations() default false;
 * If set to true, this test will run even if the methods
 * it depends on are missing or excluded.
 public boolean ignoreMissingDependencies() default false;
 * The scheduling priority. Lower priorities will be scheduled first.
 int priority() default 0;
}

 

3.TestNG参数化测验

        A.根据xml装备完成 需求@Parameters合作

        B.根据编码办法需求@Parameters合作

        C.根据Dataprovider数据提供者完成的。

        D.根据自定义数据提供者。

4.TestNG测验之间依靠

        A.测验分组,组间依靠   dependsOnGroups

        B.测验办法,办法称号之间的依靠   dependsOnMethods

5. TestNG @Factory测验工厂的设置

       首要设置针对测验单元的屡次测验而言

6.TestNG并发测验和超时,反常的设置 threadPoolSize  singleThreaded         timeOut  expectedExceptions

 

7TestNG失利从头履行的战略

8TestNG和junit的整合

     A.junit3 选用反射完成调用和履行

    B.junit4选用JunitCore调用履行类。

9TestNG编码办法运转

       TestNG完成:

         

 TestNG tng = new TestNG(); 
 tng.addListener( new MyMethodInterceptor());
 tng.setTestClasses(new Class[]{MyMethodInterceptorTest.class});
 tng.run();

 

 

Junit4完成:

  

 JUnitCore.main(args);
 JUnitCore.runClasses(new class[]{Test.class,Test1.class});

 

10。TestNG经过注解Transformers 完成对运转时履行操控。

               首要完成IAnnotationTransformer 接口即可。

11.TestNg办法拦截器的能够修正履行的成果信息。

              首要完成IMethodInterceptor接口即可。

12 TestNG丰厚的Listener监听器满意不同阶段的监听。

  IAnnotationTransformer 
  IAnnotationTransformer2 
  IHookable 
  IInvokedMethodListener 
  IMethodInterceptor 
  IReporter 
  ISuiteListener 
  ITestListener 

13.TestNG的依靠注入和不同结构的整合

    Spring,Guide等运用。

14.TestNG成果的监听和履行陈述和日志的操控

 

 

 

   

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章