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


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





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

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

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




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

               @Test Test办法

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




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



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





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

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

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


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




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





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





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


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

               首要完成IAnnotationTransformer 接口即可。



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