自动化测试Junit

目录

    • Junit5
      • 注解
        • @Test
        • @Disabled
        • @BeforeAll、@AfterAll、@BeforeEach、@AfterEach
      • 参数化
        • 单参数
        • 多参数
        • CSV获取参数
        • 方法获取参数
      • 测试用例执行顺序
      • 断言 assert
        • 断言相等
        • 断言不相等
        • 断言为空
        • 断言不为空
      • 测试套件
  • 自动化测试项目
      • 1. 熟悉项目
      • 2. 针对核心流程设计手工测试用例
      • 3. 将手工测试用例转换成自动化测试用例
      • 4. 部署

Junit5

  1. 为什么学了selenium还需要学习Junit
    selenium是一个自动化测试框架
    Junit是一个单元测试框架

拿着一个技术写自动化测试用例(selenium3)
拿着一个技术管理已经编写好的测试用例(Junit5)

  1. Junit相关的技术

Junit是针对Java的单元测试框架
注解:

  • @Test
  • @Disabled
  • @BeforeAll、@AfterAll、@BeforeEach、@AfterEach

参数化:

  • 单参数
  • 多参数
  • CSV获取参数
  • 方法获取参数

测试套件

  • 通过class运行测试用例
  • 通过包(package)运行测试用例

注解

@Test

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

@Disabled

忽略此测试用例

@BeforeAll、@AfterAll、@BeforeEach、@AfterEach

@BeforeAll:在所有测试用例之前跑的
@AfterAll:在所有测试用例之后跑的
@BeforeEach:在每个测试用例执行之前执行
@AfterEach:在每个测试用例执行之后执行
如果做UI自动化,通常情况下,创建驱动、打开网页放在BeforeAll;
关闭浏览器放在AfterAll

如果有5个测试用例:
@BeforeAll、@AfterAll:各跑一次
@BeforeEach、@AfterEach:各跑五次

import org.junit.jupiter.api.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;public class JunitTest {@Testpublic void Test01() {System.out.println("这是JunitTest 的 Test01");}@Testvoid Test02() {System.out.println("这是JunitTest 的 Test02");}//    @Test@Disabled   //忽略此测试用例void Test03() {WebDriver webDriver = new ChromeDriver();webDriver.get("https://www.baidu.com");webDriver.findElement(By.cssSelector("#s-top-left > a:nth-child(6)"));}//在所有测试用例之前跑的@BeforeAllstatic void SetUp() {System.out.println("BeforeAll");}//在所有测试用例之后跑的@AfterAllstatic void TearDown() {System.out.println("AfterAll");}@BeforeEachvoid BeforeEachTest() {System.out.println("BeforeEach");}@AfterEachvoid AfterEachTest() {System.out.println("AfterEach");}
}
BeforeAll
BeforeEach
这是JunitTest 的 Test01
AfterEach
BeforeEach
这是JunitTest 的 Test02
AfterEach
AfterAll

参数化

单参数

 @ParameterizedTest@ValueSource(ints = {1,2,3})void Test04(int num) {System.out.println(num);}@ParameterizedTest@ValueSource(strings = {"1","2","3"})void Test05(String num) {System.out.println(num);}

多参数

    //多参数@ParameterizedTest@CsvSource({"1, 2, 3, ''"})void Test02(String x, String y, String z, String q) {System.out.println(x);System.out.println(y);System.out.println(z);System.out.println(q);System.out.println("--");}

CSV获取参数

在这里插入图片描述

张三,李四,王五
张三1,李四1,王五1
张三2,李四2,王五2
    //CSV获取参数@ParameterizedTest@CsvFileSource(resources = "test01.csv")void Test06(String name1) {System.out.println(name1);}

方法获取参数

    public static Stream<Arguments> Generator() {return Stream.of(Arguments.arguments(1, "zhang san"),Arguments.arguments(2, "li si"),Arguments.arguments(3, "wang wu"));}// 方法获取参数@ParameterizedTest@MethodSource("Generator")void Test07(int num, String name) {System.out.println(num + " : " + name);}

测试用例执行顺序

表明现在这个测试用例不需要按照默认的顺序执行

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)  

按照order的顺序执行 TestA --> Test01 --> TestB --> Test02

import org.junit.jupiter.api.*;@TestMethodOrder(MethodOrderer.OrderAnnotation.class)  // 表明现在这个测试用例不需要按照默认的顺序执行
public class JunitTest01 {@Order(1)@Testvoid TestA() {System.out.println("这是testA测试用例");}@Order(2)@Testvoid Test01() {System.out.println("这是test01测试用例");}@Order(4)@Testvoid Test02() {
//        System.out.println("这是test02测试用例, 被忽略的测试用例");System.out.println("这是test02测试用例");}@Order(3)@Testvoid TestB() {System.out.println("这是testB测试用例");}
}

在这里插入图片描述
随机的运行方式

@TestMethodOrder(MethodOrderer.Random.class)  

每次的测试用例执行顺序都不一样

断言 assert

断言相等

Assertions.assertEquals(预期, 实际)

在这里插入图片描述

断言不相等

    // 单参数@ParameterizedTest@ValueSource(ints = {1})void Test01(int num) {System.out.println(num);Assertions.assertNotEquals(2, num);   // 断言不相等}

在这里插入图片描述

断言为空

    // 单参数@ParameterizedTest@ValueSource(ints = {1})void Test01(int num) {System.out.println(num);String str = "sad";Assertions.assertNull(str);}

在这里插入图片描述

断言不为空

    // 单参数@ParameterizedTest@ValueSource(ints = {1})void Test01(int num) {System.out.println(num);String str = "sad";Assertions.assertNotNull(str);}

测试套件

通过class进行测试用例的运行

@Suite
@SelectClasses({JunitTest.class, JunitTest01.class, JunitTest03.class})
//通过class进行测试用例的运行
//先去跑 JunitTest 的全部测试用例,再跑JunitTest01, 最后JunitTest03 按照这里写的顺序执行
public class RunSuite {
}

通过包名进行测试用例的运行

@Suite
// 通过包进行测试用例的运行
@SelectPackages(value = {"Package01", "Package02"})
public class RunSuite {
}

自动化测试项目

  1. 熟悉项目
  2. 针对核心流程设计测试用例(手工测试用例)
  3. 将手工测试用例转换成自动化测试用例
  4. 部署

1. 熟悉项目

2. 针对核心流程设计手工测试用例

在这里插入图片描述

3. 将手工测试用例转换成自动化测试用例

设计代码结构:
初始化:BeforeAll (创建驱动)
退出:AfterAll (退出浏览器)

4. 部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/354240.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

解释PBR纹理贴图(texture-maps)

纹理贴图&#xff0c;不管你是学习sp绘制纹理&#xff0c;还是利用渲染器创造艺术作品&#xff0c;接触到PBR流程&#xff0c;总要面对各种贴图。我在学习的时候&#xff0c;有时候搞得懂&#xff0c;有时候糊里糊涂&#xff0c;我想还是要做个笔记的&#xff0c;好记性不如烂笔…

PBR贴图基础知识

PBR贴图基础知识 一&#xff0c;基础知识二&#xff0c;PBR贴图类型传统次世代方式PBR次世代方式1&#xff0c;金属度粗糙度流程---Base ColorMetallicRoughness2&#xff0c;反射度光滑度流程---Diffuse/AlbedospecularGlossiness/Smoothness3&#xff0c;通用贴图类型法线贴图…

UE4 Material 101学习笔记——08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶

UE4 Material 101学习笔记——08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶 Lec08 凹凸和视差贴图 Bump Offset and Parallax Occlusion MappingLec09 纹理压缩与设置 Texture Compression and SettingsLec10 布料着色器 Cloth Shading10.1 了解布料10.2 布料shader Le…

技术美术个人笔记(十四)——Houdini程序化树木

前言&#xff1a;关于大地形美术资产制作部分的houdini程序化树木部分&#xff0c;原houdini内置有Labs Quick Basic Trees节点&#xff0c;以下步骤均基于此节点优化魔改&#xff1b; 效果预览&#xff1a; tip&#xff1a;其中树叶贴图及地形颜色变化通过在材质中对贴图采样…

CSS3+js绘制3D圣诞树

最近大家都在用代码写圣诞树&#xff0c;我也跟个风吧&#xff01; 主要技术&#xff1a; 1.CSS3的3D变换 2.DOM动态添加节点 开发环境&#xff1a;vscode 目录 一.引入 二、基本知识 1.CSS3的3D变换 (1).空间直角坐标系 (2).transform详解 (3).transform-style 2.DOM节点…

unity透明通道加颜色_树叶透明贴图的制作原理及渲染!

对于很多刚开始接触渲染模块的同学来说&#xff0c;不知道透明贴图的制作原理&#xff0c;以及如何渲染出好的效果&#xff0c;今天结合案例给大家讲解一下&#xff0c;先打开我们需要的素材&#xff0c;如下图&#xff1a; 在制作之前我们先给树叶一个普通的blinn材质&#xf…

SpringBootWeb案例-2(上)

前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能&#xff0c;还有两个需要实现&#xff1a; 新增员工修改员工 首先我们先完成"新增员工"的功能开发&#xff0c;再完成"修改员工"的功能开发。而在"新增员工"中&…

微调样本质量胜于数量 LIMA: Less Is More for Alignment

1、总体介绍 大型语言模型的训练分为两个阶段&#xff1a;&#xff08;1&#xff09;从原始文本中进行无监督的预训练&#xff0c;以学习通用的表征&#xff1b;&#xff08;2&#xff09;大规模的指令学习和强化学习&#xff0c;以更好地适应最终任务和用户的偏好。 作者通过…

XP系统如何把文本转换成html,xp系统下将HTML文件设置为屏保的方法

关于XP系统的屏保设置&#xff0c;很多人脑子中肯定有个固定的样式&#xff0c;因为按照XP系统的传统来说&#xff0c;都是固定的按照图片来设置的&#xff0c;所以很多人就对屏保有了一定的硬性思维&#xff0c;就是只能是图片的形式。其实这样的想法是有所偏差的&#xff0c;…

linux6禁用屏幕保护程序,禁用屏幕保护程序(ScreenSaver Disabled)

禁用屏幕保护程序ScreenSaverDisabled是一款可以帮助用户朋友让自己的电脑不要总是被屏幕保护影响&#xff0c;有些设置隔三差五就会进入屏保状态&#xff0c;使用这款禁用屏幕保护程序ScreenSaverDisabled可以帮您解决这个烦恼。 相关软件软件大小版本说明下载地址 禁用屏幕保…

xp系统怎么定时锁定计算机,电脑怎么设置自动锁屏_XP系统电脑怎么设置自动锁屏...

摘要 腾兴网为您分享:XP系统电脑怎么设置自动锁屏&#xff0c;字体配置&#xff0c;智慧大学&#xff0c;掌上新华&#xff0c;小t智联等软件知识&#xff0c;以及mp3音乐裁剪器&#xff0c;小霸王&#xff0c;屏幕分屏软件&#xff0c;湖北网上税务局&#xff0c;照片印刷&…

汉字时钟屏保软件/汉字时钟电脑屏幕保护下载/汉字时钟屏保/windows屏保

软件名称&#xff1a;冷高轮时间汉字时钟屏保 软件语言&#xff1a;简体中文 软件类别&#xff1a;桌面工具 软件授权&#xff1a;免费软件 适用平台&#xff1a;WinXP, Win7, Win8, Win10, WinAll 电脑壁纸下载可在wallpaper engine或者upupoo上搜索全称“冷高轮时间‘ …

xp系统计算机不休眠设置,xp和win7系统怎么设置电脑不休眠详细教程

百度音乐播放器2017v10.1.8 官方最新版 类型&#xff1a;音频播放大小&#xff1a;14.3M语言&#xff1a;中文 评分&#xff1a;9.4 标签&#xff1a; 立即下载 电脑的休眠和睡眠的状态是什么样的&#xff1f; 休眠&#xff1a;就是把应用环境保存在硬盘上&#xff0c;直白地说…

电脑显示无法启动程序 因为计算机丢失,电脑显示无法启动此程序丢失.dll文件怎么办...

电脑显示"无法启动此程序"丢失.dll文件怎么办 【百度经验方法】

用vb写计算机程序代码,用VB编写的抽奖程序源代码随机抽取不重复

年度抽奖的小程序,可以自定义 年度抽奖小程序,您可以自定义背景,抽奖形式,设置奖品等. PPT彩票小程序 PPT开发工具彩票代码,VBA代码,每个需要它的人都可以下载.

Windows XP 禁用屏幕保护功能

在“桌面”上按快捷键“CtrlR”&#xff0c;调出“运行”窗口。接着&#xff0c;在“打开”后的输入框中输入“Gpedit.msc”。并按“确定”按钮。如下图 找到“用户配置”下的“管理模板”下的“控制面板”的“显示”&#xff0c;双击选择“屏幕保护程序”。如下图 在“屏幕保护…

此计算机屏保怎么取消,如何取消屏幕保护

上班候一会要用电脑&#xff0c;一会儿要做笔记什么的。可是电脑的屏幕保护太烦了一会儿又跳出来&#xff0c;这样搞得都没有办法好好查资料做笔记了。相信有很多朋友一样受着这样的的烦恼吧?不要着急&#xff0c;今天技术员来告诉大家如何取消屏幕保护吧。不过随着Xp系统的淘…

xp 无法关闭计算机,电脑xp系统关不了机怎么解决

有时候电脑关闭计算机时,总是提示“你现在可以安全关闭计算机了”,然后不能关机了这是什么回事呢?下面学习啦小编给大家讲解一下关于电脑xp系统关不了机的解决方法,希望大家喜欢! 电脑xp系统关不了机的解决方法 一、启动高级电源管理支持 无法自动关机是因为电源的设置不当…

Screen Saver Exporter for Mac(屏幕保护程序导出程序)

Screen Saver Exporter Mac破解版是一款适用于After Effects和Premiere Pro的屏幕保护程序导出程序插件。Screen Saver Exporter for Mac只需单击一下&#xff0c;即可将电影导出到屏幕保护程序&#xff0c;非常的方便快捷&#xff0c;有需要的小伙伴千万不要错过哦&#xff0c…

Win XP 如何禁用屏保

如果你试过 “在桌面空白处点击右键-【属性】-【屏幕保护程序】&#xff0c;选择【无】&#xff0c;点击【确定】”后&#xff0c;当时是可以去掉屏保。但如果重启计算机或者从待机状态唤醒后&#xff0c;屏保依然会出现&#xff0c;那么你可以试试下面的方法。 首先&#xff0…