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

wordpress目录路径沈阳seo顾问公司

wordpress目录路径,沈阳seo顾问公司,黑龙江省建设工程招标网站,网页设计框架图1.junit 1.1 junit是什么 JUnit是一个Java语言的单元测试框架。 虽然我们已经学习了selenium测试框架,但是有的时候测试用例很多,我们需要一个测试工具来管理这些测试用例,Junit就是一个很好的管理工具,简单来说Junit是一个针对…

1.junit

1.1 junit是什么

JUnit是一个Java语言的单元测试框架。

虽然我们已经学习了selenium测试框架,但是有的时候测试用例很多,我们需要一个测试工具来管理这些测试用例,Junit就是一个很好的管理工具,简单来说Junit是一个针对Java单元测试的框架。Junit由Junit Platform _ Junit Jupiter + junit Vintage3部分组成。

1.2 Junit和Selenium的关系

Junit和Selenium是完全不同的两个东西!!!

在一个灯串上,如果说selenium编写的测试用例是一个小灯泡,那么junit就是把它们串起来的线。junit是用来管理selenium的测试用例的。

在这里插入图片描述

2.junit技术

2.0 前置工作

在pom.xml文件中添加依赖

引入selenium:

        <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.7.2</version></dependency><!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version></dependency>

参数化:

        <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.9.2</version></dependency>       <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-params</artifactId><version>5.9.2</version></dependency>

测试套件:

        <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite --><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-suite</artifactId><version>1.9.1</version></dependency><!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>5.9.1</version><scope>test</scope></dependency>

2.1 junit常用注解

@Test

@Test表示当前的方法是一个测试用例

使用:

@Test
void + 方法名(){}

举例:

    //表示当前的方法是一个测试用例@Testvoid Test01(){// 创建了一个options对象,用来给请求设置一些参数ChromeOptions options = new ChromeOptions();// 允许所有的请求options.addArguments("--remote-allow-origins=*");//设置驱动路径System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");// 创建了一个驱动WebDriver webDriver = new ChromeDriver(options);//打开百度webDriver.get("https://www.baidu.com/");}

@BeforeAll 和 @AfterAll

这两个注解在整个测试的时候会执行一次。

@BeforeAll表示在当前类所有测试用例执行之前运行
@AfterAll表示在当前类所有测试用例执行之后运行
并且这两个方法都有static修饰,都只执行一次

使用:

@BeforeAll
static void 方法名(){}

举例:

	//当前类里面所有的测试用例执行之前执行这个方法@BeforeAllstatic void SetUp(){System.out.println("开始执行@BeforeAll修饰的方法");}

使用:

@AfterAll
static void 方法名(){}

举例:

	//当前类里面所有的测试用例执行之后执行这个方法@AfterAllstatic void TearDown(){System.out.println("开始执行@AfterAll对应的方法");}

运行结果:
在这里插入图片描述

@BeforeEach 和 @AfterEach

这两个注解会在每一个测试用例执行的时候都执行一次。

  • @BeforeEach表示在每个测试方法执行前运行
  • @AfterEach表示在每个测试方法执行后运行

举例:

    @BeforeEachvoid BeforeTest(){System.out.println("这是一个@BeforeEach注解");}@AfterEachvoid AfterTest(){System.out.println("这是一个@AfterEach注解");}

结果:
在这里插入图片描述

@Disabled

作用:忽略当前的测试用例

举例:

    //忽略当前的测试用例@Disabled//表示当前的方法是一个测试用例@Testvoid Test01(){// 创建了一个options对象,用来给请求设置一些参数ChromeOptions options = new ChromeOptions();// 允许所有的请求options.addArguments("--remote-allow-origins=*");//设置驱动路径System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");// 创建了一个驱动WebDriver webDriver = new ChromeDriver(options);//打开百度webDriver.get("https://www.baidu.com/");}

结果:并没有执行这个测试用例

在这里插入图片描述

2.2 junit测试用例执行顺序

有人觉得junit的测试顺序是从上到下的,是这样吗?

先来看一个示例:

    @Testvoid Test06(){System.out.println("这是测试用例5");}@Testvoid Test05(){System.out.println("这是测试用例4");}@Testvoid Test04(){System.out.println("这是测试用例3");}@Testvoid Test02(){System.out.println("这是测试用例1");}@Testvoid Test03(){System.out.println("这是测试用例2");}

结果:

在这里插入图片描述

以上结果表明了它不是按照从上到下执行的测试用例。

指定顺序执行

使用@TestMethodOrder(MethodOrderer.OrderAnnotation.class)+ @Order(数字)注解顺序执行测试用例。

举例:

//按照指定顺序执行测试用例
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest {@Order(1)@Testvoid Test06(){System.out.println("这是测试用例5");}@Order(2)@Testvoid Test05(){System.out.println("这是测试用例4");}@Order(3)@Testvoid Test04(){System.out.println("这是测试用例3");}@Order(4)@Testvoid Test02(){System.out.println("这是测试用例1");}@Order(5)@Testvoid Test03(){System.out.println("这是测试用例2");}
}

结果:
在这里插入图片描述
是按照order里面的顺序执行的。

随机执行

使用@TestMethodOrder(MethodOrderer.Random.class)随机执行测试用例。

举例:

//按照随机顺序执行测试用例
@TestMethodOrder(MethodOrderer.Random.class)
public class JunitTest {@Order(1)@Testvoid Test06(){System.out.println("这是测试用例5");}@Order(2)@Testvoid Test05(){System.out.println("这是测试用例4");}@Order(3)@Testvoid Test04(){System.out.println("这是测试用例3");}@Order(4)@Testvoid Test02(){System.out.println("这是测试用例1");}@Order(5)@Testvoid Test03(){System.out.println("这是测试用例2");}
}

2.3 参数化测试

测试方法一般需要传参数。

单参数

使用 @ParameterizedTest + @ValueSource() 配合传递单参数

@ParameterizedTest : 注册参数

!!!注意:这两个注解不能和@Test一起使用,并且只能传一种类型的参数

示例:

    @ParameterizedTest  //注册@ValueSource(strings = {"1","2","3"})void Test07(String str){System.out.println(str);}

结果:
在这里插入图片描述

多参数

上面只可以传入一种类型的参数,所以如果我们需要传入多种类型的参数,就可以使用csv 。

CSV

①直接传参数:使用@ParameterizedTest + @CsvSource()配合

举例:

    @ParameterizedTest@CsvSource({"1,2","3,4"})void Test08(String str,int num){System.out.println(str+" "+num);}

结果:
在这里插入图片描述

②传递文件:使用@ParameterizedTest+ @CsvFileSource(resources = "文件名.csv")配合

!!!注意:文件必须是.csv类型

示例:

    @ParameterizedTest@CsvFileSource(resources = "test01.csv")void Test09(int id,String name){System.out.println("id="+id+",name="+name);}

test01.csv文件内容:

1,温温
2,苏苏
3,怜怜

结果:
在这里插入图片描述

方法传参

使用@ParameterizedTest + @MethodSource("方法名") 传入一个方法

示例:

    @ParameterizedTest  //注册参数@MethodSource("Generator")  //注册的参数是什么void Test10(String num,String name){System.out.println(num+" "+name);}

Generator方法代码:

	public static Stream<Arguments> Generator() {return Stream.of(Arguments.arguments("1,温温","2,苏苏"));}

结果:
在这里插入图片描述

2.4 断言

在软件测试中,断言(Assertion)是一种用于检查程序或系统在执行某些操作或运行某些代码后是否符合预期行为的技术手段。在测试中,断言通常用于验证代码的正确性,确保代码在满足特定条件时会产生预期的结果。

示例:

    @ParameterizedTest@ValueSource(ints = {10})void Test11(int num){//断言相等Assertions.assertEquals(num,10);//断言不相等Assertions.assertNotEquals(num,11);}
    @ParameterizedTest@ValueSource(strings = {"1"})void Test11(int num){//断言为空Assertions.assertNull(num);//断言不为空Assertions.assertNotNull(num);}

2.5 测试套件

测试套件(test suite)有时也称为验证套件(validation suite),是许多测试用例的集合,测试用例可用来测试一程式是否正确工作,测试套件包括许多测试用例,一般也会有针对测试用例及其测试目的的详细说明,在进行测试时的系统组态资讯以及测试前需进行的步骤。

通过测试套件,将服务于同一个测试目的或同一运行环境下的一系列测试用例有机的组合起来。测试套件是按照测试计划所定义的各个阶段的测试目标决定的,即先有测试计划,后面才有测试套件。

例如:此时有三个类的测试用例都需要测试。
在这里插入图片描述

通过测试套件全部测试:

方法①:在括号中写入测试类

@Suite
@SelectClasses({JunitTest.class, JunitTest02.class})
public class RunSuite {
}

方法②:根据指定的包来运行多个测试用例

@Suite
@SelectPackages({"org.example.junit01","org.example.junit"})
public class RunSuit {
}
http://www.yayakq.cn/news/823095/

相关文章:

  • 余姚做网站设计的wordpress自定义打不开
  • 珠海酒店网站建设广告策划书前言范文
  • 网站开发包平面设计网上培训
  • 大连图书馆网站建设要求凯天建设发展集团有限公司网站
  • 河南省城乡与住房建设厅网站首页手机app开发需要哪种语言
  • 淘宝网站建设的目标什么wampserver搭建网站
  • 做网站怎么拿框架的原代码湖南网站设计公司
  • 网站制作中企动力优现代电子商务网站建设技术
  • 图书销售网站建设平台型网站建设方案
  • 怎么优化网站排名三河seo
  • 行业电子商务网站建设软件服务开发
  • 重庆网站建设023kwdocker架设wordpress
  • 建设银行网站查询密码是啥wordpress 多语言建站
  • 网站开发语言查询 蔡学镛20个排版漂亮的网页设计
  • 网站备案幕公司注销流程及需要的材料
  • 163建筑网站怎样建个小公司的网站
  • 买外贸衣服的网站免费服务器的网站有哪些
  • 网站备案容易吗ac域名网站
  • 如何做网络销售产品网站程序优化
  • 做的网站每年需要续费wordpress我爱水煮鱼
  • 深圳住房建设局网站首页阿里云做的网站为啥没有ftp
  • 大龄网站开发人员湖北建设银行官方网站首页
  • 厦门网站建设方案服务wordpress 用户密码的加密算法
  • 公司注销后网站备案吗如何做网站编辑 沒技术
  • 做网站公司找意向客户南县网站设计
  • 做淘宝的货源网站河南省建设监理协会网站人才十
  • 连云港权威网站优化服务一流的盘锦网站建设
  • 重庆企业网站开发wordpress与广告有关的主题
  • 红色风格网站在线短链接生成
  • 珠海企业宣传片制作内存优化大师