自动化测试之Junit

    • Junit引入
    • 注解
    • 参数化
      • 单参数
      • 多参数
      • 方法传参
    • 测试用例执行顺序
    • 断言
    • 测试套件

Junit引入

Junit来编写和组织自动化测试用例,使用Selenium来实际模拟用户与Web应用程序的交互。也就是使用JUnit的测试功能来管理和运行Selenium测试。常见的做法是,使用JUnit作为测试框架来编写和管理测试用例,然后使用Selenium WebDriver来执行与Web应用程序的交互。

Junit是针对java的单元测试框架
我们学习的内容如下:
注解
@Test
@Disabled
@BeforeAll,@AfterAll,@BeforeEach,@AfterEach

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

测试套件
通过class运行测试用例;通过包运行测试用例

1:添加Junit依赖
在这里插入图片描述

注解

注解Test:表示当前方法是一个测试用例
在这里插入图片描述
下方控制台:成功是绿色的;
在这里插入图片描述
失败就会报一堆红的;
在这里插入图片描述
在方法的运行图标上标红;意味则这个测试用例不能通过
在这里插入图片描述

注解:@Disabled
在这里插入图片描述
注解:@BeforeAll,@AfterAll
这个比较特殊,需要前面加static。因为他是针对类的;所以需要static。。你想想是不是静态的static才能做到比其它方法先执行;类加载的时候执行。在跑所有的测试用例之前会执行这个;;所有的测试用例执行完就会跑afterALI语句
在这里插入图片描述
想一想什么方法要放在这里面呢
创建驱动,打开网页;初始化在前;而关闭在后。比如idbc连接数据库。
关闭浏览器在后

注解:@BeforeEach,@AfterEach
在这里插入图片描述
一个测试用例执行前都会执行beforeeach;每一次测试用例执行后都会执行一次aftereach

参数化

参数依赖于另一个注解;这又是另一个依赖

在这里插入图片描述

单参数

注解@Parameterized作用在方法上面,用来表示这个方法支持传入多个参数;
注解@ValueSource用于指定传入参数的类型;例如:strings={}就表示传入的是一个string类型的数组。@ValueSource注解当中只支持一种数据类型。
在这里插入图片描述
这样子;这个测试用例会跑3次;每一次取一个数字

多参数

传不同类型数据:默认是逗号分割;我们可以用以下方法;定义分隔符

    @ParameterizedTest@CsvSource(value = {"张三-20","李四-21","王五-22"},delimiter = '-')public void printStringAndAge(String name,int age){System.out.println("name:"+name+";age="+age);}

如果参数当中包含逗号:“,”,就需要使用单引号转义字符串。例如:" ‘张,三’, 20 "
这样子才能正确的输出张,三

通过文件读取参数:@CsvFileSource(resources=“/文件名称”)。这里读取的内容(resources=“/文件名称”)也可以你自己指定一个
files = “C:\Users\廖雨wang\source\test01.csv”
resources目录下创建这个文件
在这里插入图片描述
在这里插入图片描述

方法传参

在这里插入图片描述
在这里插入图片描述
或者这样子写:
在这里插入图片描述

这两个注解和test是冲突的;相当于执行两次:第一次是如下这样子;参数没传过来,当然报错。。。第二次相当于把@test解注释掉再执行一次。。一次通过;一次不通过。

测试用例执行顺序

如果你没加任何的执行顺序指定;所有的测试用例一起执行;它们的顺序是固定的;就是看人家junit对这些是怎么实现的;不管你怎么调整都是固定的一样执行顺序
在这里插入图片描述
指定顺序:
1:先在类上添加@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
2:在要指定顺序的方法上加@order(1);@order(2);@order(3);按照你的123顺序进行执行

在类上加@TestMethodOrder(MethodOrderer.Random.class);就表示随机的运行机制

断言

因为我们没有一个预期结果进行效验;就算进行效验都是需要if判断;是不是很麻烦
在这里插入图片描述
断言相等:如果相等;测试用例就通过
在这里插入图片描述

断言不相等:如果不相等;测试用例就通过
在这里插入图片描述

断言为空:如果为空;测试用例就通过
在这里插入图片描述

断言不为空:如果不为空;测试用例就通过

String str="123";
Assertions.assertNotNull(str)

测试套件

通过class测试用例运行;
在这里插入图片描述
或者通过包名控制;这个注解要求传的是string数组;这样子就会按照先执行Test01这个包的测试用例;再执行Test08这个包的测试用例
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字图像处理—— Lab、YCbCr、HSV、RGB之间互转

Lab “Lab” 图像格式通常指的是 CIELAB 色彩空间,也称为 Lab 色彩空间。它是一种用于描述人类视觉感知的颜色的设备无关色彩空间,与常见的 RGB 和 CMYK 色彩空间不同。CIELAB 由国际照明委员会(CIE)于1976年定义,用于…

PDF校对工具正式上线,为用户提供卓越的文档校对解决方案

为满足当下对数字化文档校对的精准需求,我们今日正式发布全新的PDF校对工具。经过深入的技术研发与细致的测试,该工具旨在为企业和个人用户带来一个高效且准确的PDF文档校对平台。 PDF校对工具的主要特性: 1.全面性校对:工具支持…

Sphinx——Python生成API文档

1、简介 Sphinx是Python文档生成器,它基于reStructuredText标记语言,可自动根据项目生成HTML,PDF等格式的文档,无数著名项目的文档均用Sphinx生成,如机器学习库scikit-learn、交互式神器Jupyter Notebook sphinx是一…

陪诊系统源码开发:实现个性化医疗陪护的创新之路

陪诊系统的源码开发在现代医疗中具有重要意义。本文将通过代码示例介绍陪诊系统的源码开发,展示如何实现个性化医疗陪护的创新方案。 1. 安装和环境设置: 首先,确保你的开发环境中已经安装了合适的编程语言和框架,比如Python和…

数据采集:selenium 获取 CDN 厂家各省市节点 IP

写在前面 工作需要遇到,简单整理理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对…

基于XL32F003单片机的可控硅调光方案

可控硅调光是一种用于调节电源输出电压的技术,被广泛应用于各种场景。它主要通过改变波形的导通角度来调节输出电压的大小,从而实现对照明设备亮度的控制。在照明市场占据了很大的调光市场。 可控硅调光的兼容性强,应用范围广。例如&#xff…

fastgpt构建镜像

1.把client目录复制到服务器 .next和node_modules文件夹不用上传到服务器 在服务器目录运行 docker build -t fastgpt:1.0.3 . 构建服务 再运行 docker ps 就可以看到容器了

AKM10-58C大电流TVS二极管参数:58V 10000A

东沃(DOWO)AKM10-76C是什么二极管? 东沃生产AKM10-76C大电流TVS二极管吗?有现货吗? 除了AKM10-76C外,东沃(DOWO)生产的贴片大电流二极管还有哪些型号? …… AKM10-76C是厂…

怎样压缩mp4视频大小?

怎样压缩mp4视频大小?由于视频文件的体积通常比其他类型的文件更大,因此它们需要更多的存储空间来保存。但是,如果我们的设备、应用程序或平台不支持某些视频格式或分辨率,或者我们没有足够的存储空间来容纳这些大型视频文件&…

C语言易错点整理

前言: 本文涵盖了博主在平常写C语言题目时经常犯的一些错误,在这里帮大家整理出来,一些易错点会帮大家标识出来,希望大家看完这篇文章后有所得,引以为戒~ 一、 题目: 解答: 首先在这个程序中…

自己搭建Minecraft服务器并通过cpolar内网穿透实现与公网小伙伴联机我的世界

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

MIA文献阅读 —— 深度学习在医学图像分析中的最新进展及临床应用【2022】

目录 0 摘要1 引言2 深度学习方法概述2.1 监督式学习2.2 无监督学习2.2.1 自编码器 (Autoencoders)2.2.2 生成对抗网络(GANs)2.2.3 自监督学习 2.3. 半监督学习2.4 提高性能的策略2.4.1 注意力机制2.4.2 领域知识2.4.3 估计的不确定性 3 深度学习应用3.1 分类3.1.1 监督分类3.1…

免费清理电脑:删除垃圾文件以提升电脑性能

求助!电脑上没有可用空间 ​“我只在电脑上存储了大约100张照片,为什么我的硬盘空间已满?电脑运行速度也变得越来越慢,要疯了!现在我想安装更新的驱动程序。我可以释放磁盘空间吗?有免费的Windows电脑清…

免费开源使用的几款红黑网络流量工具,自动化的多功能网络侦查工具、超级关键词URL采集工具、Burpsuite被动扫描流量转发插件

免费开源使用的几款红黑网络流量工具,自动化的多功能网络侦查工具、超级关键词URL采集工具、Burpsuite被动扫描流量转发插件。 #################### 免责声明:工具本身并无好坏,希望大家以遵守《网络安全法》相关法律为前提来使用该工具&am…

【python】Leetcode(primer-set)

文章目录 78. 子集(集合的所有子集)90. 子集 II(集合的所有子集)792. 匹配子序列的单词数(判断是否为子集)500. 键盘行(集合的交集)409. 最长回文串(set) 更多…

Tomcat的安装与介绍

首先我们先了解一下什么是服务器?什么是服务器软件? 什么是服务器?安装了服务器软件的计算机。 什么是服务器软件? 服务器软件是一种运行在服务器操作系统上,用于接收和处理客户端请求,并提供相应服务和资…

微信小程序,封装身高体重选择器组件

wxml代码&#xff1a; // 微信小程序的插值语法不支持直接使用Math <wxs src"./ruler.wxs" module"math"></wxs> <view class"ruler-container"><scroll-view scroll-left"{{scrollLeft}}" enhanced"{{tru…

java八股文面试[java基础]——CGLIB动态代理与JDK动态代理

CGLIB CGLIB简介&#xff1a; 什么是CGLIB CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架&#xff08;Spring、dynaop&#xff09;中&#xff0c;用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架&#xff0c;同样使用CGLIB来代理单端&#xff…

Kyligence Copilot 登陆海外,斩获 Product Hunt 日榜 TOP 2

8月14日&#xff0c;AI 数智助理 Kyligence Copilot 在全球知名科技产品平台 Product Hunt 上线&#xff0c;其以出色的产品创新实力&#xff0c;在激烈的竞争中脱颖而出&#xff0c;仅仅在 24 小时内收获了超过 400 个投票和近 200 条支持评论&#xff0c;荣登当日产品榜排名第…

PDF校对:追求文档的精准与完美

随着数字化时代的到来&#xff0c;PDF已经成为了多数机构和个人首选的文件格式&#xff0c;原因在于它的稳定性、跨平台特性以及统一的显示效果。但是&#xff0c;对于任何需要公开或正式发布的文档&#xff0c;确保其内容的准确性是至关重要的&#xff0c;这就是PDF校对显得尤…