章节十六、3-TestNG方法和类注解】的更多相关文章

一.Test Suite(测试套件) 我们通常认为一个testcase就是一个测试方法,但是会有很多的testcase,所以我们不可能把所有的testcase放到同一个测试类中,假如需要测试的页面有10个,我们需要创建不同的类来测试这10个页面的具体功能,测试具体功能的测试用例会放到具体的测试类中,把这些所有的测试类组合起来就成了Test Suite.可以根据我们的测试目的,选择一些类来组成Test Suite.可以选择一些基本功能的测试类,组成冒烟测试的测试类,冒烟测试可以快速的检验软件的基本…
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty(…
一. 把测试方法分优先级执行----->(priority=索引) 1.新建一个testng方法 package testclasses; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.tes…
一.TestNG注解的testcease不是自上而下运行的,而是按照方法名的字母排序或数字的大小顺序运行的. 二.断言:判断返回的结果与我们的预期结果是否一致. 1.Assert.assertTrue(); 2.Assert.assertFalse(); 注意: Assert true语句如果实际输出时false,测试不通过,并停止执行测试. Assert.assertFalse()与Assert.assertTure()正好相反,也就是说,如果您希望某个元素在页面上不存在是测试继续执行,就可以…
一.测试用例的依赖关系--->(dependsOnMethods = {"依赖方法名"}) 1.在实现自动化的过程中,有些测试用例必须在其它测试用例执行之后才能运行,两者之间存在一定依赖关系. 2.案例演示场景: testMethod1需要依赖testMethod2执行后才能顺利执行,而testMethod2需要依赖testMethod3执行完成后才能继续执行:testMethod4是独立的testcase. package testclasses; import org.tes…
一.读取xml文件中参数 1.案例演示--->创建一个需要读取数据的类 package testclasses; import org.testng.annotations.Test; import org.testng.annotations.BeforeClass; import org.testng.annotations.Parameters; import org.testng.annotations.AfterClass; public class TestNG_Parameters…
一.当我们的同一个test有多套数据需要进行测试,那么我们就需要用到-->DataProviders package testclasses1; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class TestNG_DataProviders { /** * 场景:我们需要使用3组数据对同一个test方法进行测试. * 解决思路: * 1.如果我们写3个重复的test…
一.IInokedMethodListener 1.实现一个类来监听testcase的运行情况. package listenerspackage; import org.testng.IInvokedMethod; import org.testng.IInvokedMethodListener; import org.testng.ITestResult; /** * 监听*/ //所有监听的方法都由接口提供,所以我们需要先实现接口 public class CustomerListener…
一.线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使用线程池的方式, 在python3.2(2012年)之后加入了concurrent.futures模块(python3.1.5也有,但是python3.1.5发布时间晚于python3.2一年多),这个模块是python3中自带的模块,但是python2.7以上版本也可以安装使用. 下面分别介绍下各…
1.__construct,__destruct__constuct构建对象的时被调用:__destruct明确销毁对象或脚本结束时被调用:2.__get,__set__set当给不可访问或不存在属性赋值时被调用__get读取不可访问或不存在属性时被调用3.__isset,__unset__isset对不可访问或不存在的属性调用isset()或empty()时被调用__unset对不可访问或不存在的属性进行unset时被调用4.__call,__callStatic__call调用不可访问或不存…