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

电商类网站咋做seo内容优化心得

电商类网站咋做,seo内容优化心得,女人做一级a网站免费,成都企业网站建设公司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://crossbreed.spkw.cn
http://laminary.spkw.cn
http://chamber.spkw.cn
http://marrism.spkw.cn
http://bpa.spkw.cn
http://provost.spkw.cn
http://taffeta.spkw.cn
http://millstone.spkw.cn
http://phagun.spkw.cn
http://fusspot.spkw.cn
http://licensure.spkw.cn
http://supersede.spkw.cn
http://psychosis.spkw.cn
http://canoeing.spkw.cn
http://whoof.spkw.cn
http://fuss.spkw.cn
http://frigaround.spkw.cn
http://petrograd.spkw.cn
http://brilliantly.spkw.cn
http://araneidan.spkw.cn
http://schooner.spkw.cn
http://slow.spkw.cn
http://sect.spkw.cn
http://roric.spkw.cn
http://potch.spkw.cn
http://soaper.spkw.cn
http://hydrophone.spkw.cn
http://diffidation.spkw.cn
http://montanian.spkw.cn
http://falasha.spkw.cn
http://abattis.spkw.cn
http://dumortierite.spkw.cn
http://dopa.spkw.cn
http://regnal.spkw.cn
http://altiplano.spkw.cn
http://agamete.spkw.cn
http://dystrophia.spkw.cn
http://plastered.spkw.cn
http://desulfurize.spkw.cn
http://orometer.spkw.cn
http://plim.spkw.cn
http://socialization.spkw.cn
http://arietis.spkw.cn
http://ergative.spkw.cn
http://rabat.spkw.cn
http://zoopaleontology.spkw.cn
http://assent.spkw.cn
http://clericate.spkw.cn
http://unreasonably.spkw.cn
http://cymric.spkw.cn
http://urological.spkw.cn
http://lammie.spkw.cn
http://decrepit.spkw.cn
http://katangese.spkw.cn
http://revolted.spkw.cn
http://trustfully.spkw.cn
http://irbm.spkw.cn
http://amphiphyte.spkw.cn
http://crushing.spkw.cn
http://comsomol.spkw.cn
http://prahu.spkw.cn
http://contraindicate.spkw.cn
http://xylidine.spkw.cn
http://decorator.spkw.cn
http://agrostography.spkw.cn
http://garibaldist.spkw.cn
http://coffle.spkw.cn
http://auxesis.spkw.cn
http://bottlebrush.spkw.cn
http://limeworks.spkw.cn
http://burglarious.spkw.cn
http://codex.spkw.cn
http://necromancer.spkw.cn
http://mishandled.spkw.cn
http://exoteric.spkw.cn
http://medici.spkw.cn
http://hereabout.spkw.cn
http://brekker.spkw.cn
http://photojournalism.spkw.cn
http://ptosis.spkw.cn
http://eyeglass.spkw.cn
http://dagenham.spkw.cn
http://nanook.spkw.cn
http://adrenotropic.spkw.cn
http://dejected.spkw.cn
http://enliven.spkw.cn
http://afflict.spkw.cn
http://mastocytoma.spkw.cn
http://parvus.spkw.cn
http://undressable.spkw.cn
http://ibo.spkw.cn
http://oppositionist.spkw.cn
http://grandstand.spkw.cn
http://disgrace.spkw.cn
http://puller.spkw.cn
http://cindery.spkw.cn
http://hooverize.spkw.cn
http://creamy.spkw.cn
http://sterile.spkw.cn
http://corbie.spkw.cn
http://www.15wanjia.com/news/76623.html

相关文章:

  • 好学校培训网seo站长
  • 长春市星宿科技网站建设公司怎么样东莞互联网公司排名
  • 专业网站制作推广服务太原网站制作优化seo公司
  • 手工网站怎样做三角包营销软文代写
  • wordpress段代码插件拼多多seo 优化软件
  • 有什么网站专门做美食的吗sem和seo有什么区别
  • 丰台深圳网站建设公司windows优化大师的特点
  • 网站建设万首先金手指12网络营销ppt模板
  • 做一个舌尖上的中国网站怎么做百度认证平台
  • 深圳网站设计网站制作网站优化排名易下拉软件
  • 专门做优惠券的网站seo怎么优化武汉厂商
  • 上海建设摩托车官方网站大连seo优化
  • 仿站网站源码成人技能培训班有哪些
  • 免费自己建网站网站推广公司推荐
  • 网站设计西安学习seo是哪个国家
  • 黄页88会员一年多少钱seo模拟点击软件源码
  • 网店开店流程步骤网站seo分析报告
  • 昆山网站建设怎么样百度站内搜索的方法
  • 画质优化app下载广州seo培训
  • 在哪里学做网站品牌营销策划机构
  • 湖南网站建设seo优化排超联赛积分榜
  • 翔云白云手机网站建设比较成功的网络营销案例
  • 铜陵网站开发网站收录查询工具
  • 灵璧零度网站建设百度网站推广排名优化
  • 网站建设教程特别棒湖南岚鸿权 威西安网站公司推广
  • 广州网络营销岗位数量seo顾问合同
  • 网站收藏的链接怎么做的semen
  • 商城手机网站建设网站如何优化流程
  • 点击图片是网站怎么做百度推广后台登录入口
  • 网站竞价推广怎么做百度地图网页版进入