当前位置: 首页 > news >正文

汕头市企业网站建设服务机构中山网站优化营销

汕头市企业网站建设服务机构,中山网站优化营销,n加1网站建设,网站app开发哪家好TestNG基础教程 一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置(这里是直接跑xml) 五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置 六、TestNG并发测试1、通过注解来实现2、通过xml来…

TestNG基础教程

    • 一、常用断言
    • 二、执行顺序
    • 三、依赖测试
    • 四、参数化测试
      • 1、通过dataProvider实现
      • 2、通过xml配置(这里是直接跑xml)
    • 五、testng.xml常用配置方式
      • 1、分组维度控制
      • 2、类维度配置
      • 3、包维度配置
    • 六、TestNG并发测试
      • 1、通过注解来实现
      • 2、通过xml来实现
    • 七、异常测试
    • 八、忽略测试
    • 九、软断言

一、常用断言

在这里插入图片描述

二、执行顺序

/*** 执行顺序* beforeSuite - beforeTest - beforeClass -beforeMethod - * test - afterMethod -afterClass - afterTest - afterSuite*/
public class ExecutionOrder {@BeforeSuitepublic void beforeSuite(){System.out.println("beforeSuite");}@BeforeTestpublic void beforeTest(){System.out.println("beforeTest");}@BeforeClasspublic void beforeClass(){System.out.println("beforeClass");}@BeforeMethodpublic void beforeMethod(){System.out.println("beforeMethod");}@Test(enabled = false)public void test1(){System.out.println("test1");}@Testpublic void test2(){System.out.println("test2");}@AfterMethodpublic void afterMethod(){System.out.println("afterMethod");}@AfterClasspublic void afterClass(){System.out.println("afterClass");}@AfterTestpublic void afterTest(){System.out.println("afterTest");}@AfterSuitepublic void afterSuite(){System.out.println("afterSuite");}
}

三、依赖测试

import org.testng.Assert;
import org.testng.annotations.Test;public class DependOnMethods {@Testpublic void start() {System.out.println("start");Assert.assertEquals(1,2);}@Test(dependsOnMethods = "start")public void test1() {System.out.println("test1");}@Test(dependsOnMethods = "test1")public void test2() {System.out.println("test2");}
}

四、参数化测试

1、通过dataProvider实现

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;public class DataProviderTest {@DataProvider (name = "myData")public Object[][] data() {Object[][] datas = null;return datas = new Object[][]{{"package1", 1, 2, 3},{"package2", 1, 1, 1},};}@Test(dataProvider = "myData")public void test(String name, int a, int b, int c) {System.out.println(name + "的装配数量是:" + a + "," + b + "," + c);}
}@Test(dataProvider = "methodData")public void test1(String name,int age){System.out.println("test111方法 name="+name+";age="+age);}@Test(dataProvider = "methodData")public void test2(String name,int age){System.out.println("test222方法 name="+name+";age="+age);}@DataProvider(name="methodData")public Object[][] methodDataTest(Method method){Object[][] result=null;if(method.getName().equals("test1")){result = new Object[][]{{"zhangsan",20},{"lisi",25}};}else if(method.getName().equals("test2")){result = new Object[][]{{"wangwu",50},{"zhaoliu",60}};}return result;}

2、通过xml配置(这里是直接跑xml)

<?xml version="1.0" encoding="UTF-8" ?><suite name="parameter"><test name="param"><classes><parameter name="name" value="zhangsan"/><parameter name="age" value="10"/><class name="com.course.testng.paramter.ParamterTest"/></classes></test></suite>

五、testng.xml常用配置方式

  • 配置需要结合代码和xml

1、分组维度控制

  • 方法1
public class Groups {@Test(groups = "group1")public void test1() {System.out.println("test1");}@Test(groups = {"group1","group2"})public void test2() {System.out.println("test2");}@Test(groups = "group1")public void test3() {System.out.println("test3");}// 这里还有一些groups的注解,也可以用哦@BeforeGroups("server")public void beforeGroupsOnServer(){System.out.println("这是服务端组运行之前运行的方法");}@AfterGroups("server")public void afterGroupsOnServer(){System.out.println("这是服务端组运行之后运行的方法!!!!!");}
}
<?xml version="1.0" encoding="UTF-8" ?><suite name="suitename"><test name="runAll"><classes><class name="com.course.testng.groups.group1"/><class name="com.course.testng.groups.group2"/></classes></test><test name="onlyRunOne"><groups><run><include name="group1"/></run></groups></test>

2、类维度配置

<classes><class name="examples.packageA.ClassATest"><methods><include name ="testCaseA01"></include><exclude name="testCaseA02"></exclude></methods></class>
</classes>

3、包维度配置

<packages><package name="examples.packageA"/><package name="examples.packageB"/>
</packages>

六、TestNG并发测试

1、通过注解来实现

/*** 并发测试(多个以上需要在xml文件配置)*/
public class ConcurrencyDemo {//单个的可以在这里测试(2个线程运行12次)@Test(invocationCount = 12,timeOut = 2000,threadPoolSize = 2)public void test1(){long id = Thread.currentThread().getId();System.out.println("test1的线程"+id+"正在进行计算");}@Test(invocationCount = 12,timeOut = 2000,threadPoolSize = 2)public void test2(){long id = Thread.currentThread().getId();System.out.println("test2的线程"+id+"正在进行计算");}
}

在这里插入图片描述

2、通过xml来实现

在这里插入图片描述
在这里插入图片描述

七、异常测试

import org.testng.annotations.Test;public class ExpectedException {/*** 什么时候会用到异常测试??* 在我们期望结果为某一个异常的时候* 比如:我们传入了某些不合法的参数,程序抛出了异常* 也就是说我的语气结果就是这个异常。*///    这是一个测试结果会失败的异常测试@Test(expectedExceptions = RuntimeException.class)public void runTimeExceptionFailed(){System.out.println("这是一个失败的异常测试");}//    这是一个成功的异常测试@Test(expectedExceptions = RuntimeException.class)public void runTimeExceptionSuccess(){System.out.println("这是我的异常测试");throw new RuntimeException();}
}
import org.testng.annotations.Test;public class TimeOutTest {@Test(timeOut = 3000)//单位为毫秒值public void testSuccess() throws InterruptedException {Thread.sleep(2000);}@Test(timeOut = 2000)public void testFailed() throws InterruptedException {Thread.sleep(3000);}
}

八、忽略测试

import org.testng.annotations.Test;public class IgnoreTest {@Testpublic void ignore1(){System.out.println("ignore1 执行!");}@Test(enabled = false)public void ignore2(){System.out.println("ignore2 执行");}@Test(enabled = true)public void ignore3(){System.out.println("ignore3 执行");}
}

九、软断言

  • SoftAssert的特点:
    如果一个断言失败,会继续执行这个断言下的其他语句或者断言
    也就是一个用例有多个断言,失败了其中一个,不影响其他断言的运行
    不要忘记调用
    assertAll()在该用例的最后一个断言后面。
/*** 软断言:一个错误了也不影响后面用例的执行*/
public class SoftAssertDemo {@Testpublic void test() {SoftAssert softAssert = new SoftAssert();softAssert.assertEquals(1, 2);softAssert.assertEquals(2, 1);softAssert.assertEquals(3, 1);// 最后一句一定要加哦!softAssert.assertAll();}
}
http://www.15wanjia.com/news/195184.html

相关文章:

  • 阿里巴巴做网站教程城市文化网站开发背景
  • 用html做网站的心得体会淮安做网站的公司有哪些公司
  • 顶尖的锦州网站建设国外网站大全帝国cms模板
  • 公司网站设计案例湖南佳程建设有限公司网站
  • 做电商网站电商公司广州互助网站开发
  • 网站开发员纵向发展安全的营销型网站制作
  • 做第一个网站什么类型界面设计图片素材
  • 网站搭建行业wordpress代码实现
  • 门户网站安全建设方案开发小程序费用
  • 大连网站推广爱得科技网站后角色管理权限怎么设置?
  • 恋爱网站建设seo关键词布局技巧
  • 注册电气工程师考试科目搜索引擎seo如何优化
  • 网站后期维护怎么做wordpress 粘贴图片文档
  • 建站平台在线提交功能wordpress分类主题模板下载
  • 企业站网站建设制作平台品牌建设包括
  • 湖南雷锋建设有限公司网站wordpress cms
  • 广东平台网站建设平台中外商贸网站建设平台
  • 乐清网站开发公司上海网页设计公司费用
  • 绵阳做网站的有哪些网站规划建设论文
  • 合肥最好的网站建设公司排名微信运营工具
  • 大同建设局网站钻石网站建设
  • wordpress站点进入时弹窗竞价托管一般要多少钱
  • 下列不属于网站建设规划青州网站建设推广
  • editplus怎么创网站有专门做牙膏的网站吗
  • 263网站建设怎么样wordpress 注册没密码错误
  • 中国建设银行官方招聘网站南宁seo企业优化
  • 网站运行模式深圳网站和app建设方案
  • 临夏州建设网站企业网站 报价
  • 沛县建设局网站广州企业名录
  • 泉州模板建站公司网络编程基础知识