# AutoTest **Repository Path**: xiong_lei1/AutoTest ## Basic Information - **Project Name**: AutoTest - **Description**: 版本1 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-24 - **Last Updated**: 2023-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: TestNG, Mock ## README # 第五章 ## testng标签 1、@test:最基本的注解,用来把方法标记为测试的一部分 2、@BeforeMethod: 测试方法之前运行的方法 3、@AfterMethod:测试方法之后运行的方法 4、@BeforeClass: 指的是在类运行之前运行的方法 5、@AfterClass:指的是在类运行之后运行的方法 6、@BeforeTest:多个测试类的集合,在设定好的测试集合前运行的方 7、@AfterTest:多个测试类的集合,在设定好的测试集合后运行的方法 8、@ BeforeSuite: 测试套件,在类运行之前运行的方法: 9、@ AfterSuite: 测试套件,在类运行之后运行的方法 10、@Test(dependsOnMethods = {"test1"}):依赖测试,在执行次方法之前执行test1方法之前 11、@Test(expectedExceptions = RuntimeException.class):异常测试,方法里面要抛出异常throw new RuntimeException();,否则会是一个失败的异常测试 12、@Test(enabled = true):忽略测试 13、@Test(timeOut = 2000):超时测试 14、@Test(invocationCount = 10,threadPoolSize = 3),多线程测试,一般用xml配置 **总结:testng的annotations运行顺序为:** - @BeforeSuite>@BeforeTest>@BeforeClass>@BeforeMethod>@test>@AfterMethod>@AfterClass>@AfterTest>@AfterSuite ## suit套件测试(按类分) 上述内容大家基本都了解,而在实际使用中我们再配合套件时,需要注意: 假设现在有如图所示项目, ![输入图片说明](images/image.png) - LogInTest类:登录测试类;ParTest类:支付测试类;SuiteConfig类:套件配置类;suite.xml:套件xml文件 我们期望实现的是通过xml文件运行整个项目 ![输入图片说明](images/image1.png) - 登录类内容 ![输入图片说明](images/image3.png) - 支付类内容 ![输入图片说明](images/image4.png) - 套件配置类内容 ![输入图片说明](images/image5.png) - xml文件内容,xml的内容配置在resources下 ![输入图片说明](images/image6.png) **点击对应的xml,右键,实际运行结果如下:** ![输入图片说明](images/image7.png) ## 分组测试(按方法分组,也可以分开写) **@Test(groups = "stu")组** ![输入图片说明](images/image8.png) ![输入图片说明](images/image9.png) **@Test(groups = "teacher")组** ![输入图片说明](images/image10.png) **分组的配置文件** ![输入图片说明](images/image11.png) **现在对应的xml,右,查看运行结果** ![输入图片说明](images/image12.png) ## 多线程运行 ### 多线程运行(在方法里面配置) **三个线程池运行里随机运行10次方法** ![输入图片说明](images/image13.png) 运行结果 ![输入图片说明](images/image14.png) ### 多线程运行(在xml里面配置) ![输入图片说明](images/image14.png) ![输入图片说明](images/image15.png) - tests级别:不同的test tag下的用例可以在不同的线程下执行 相同的test tag下的用例只能在同一个线程中去执行 - classs级别:相同的class tag 下的用例在同一个线程中执行 不同的class tag 下的用例可以在不同的线程中执行 - methods级别:所有用例都可以在不同的线程下去执行 - thread-count:代表了最大并发线程数 xml文件配置这种方式不能指定线程池,只有方法上才可以指定线程池 运行结果; ![输入图片说明](images/image16.png) ## 参数啊测试 - 使用xml+注解的方式进行参数化 ![输入图片说明](images/img.png) ![输入图片说明](images/img1.png) - 使用dataprovier进行参数化 ![输入图片说明](images/img_0.png) ![输入图片说明](images/img_1.png)