自动化测试 selenium+Junit 总结知识

news2024/11/17 21:32:22

文章目录

  • Selenium 自动化测试
    • 什么是selenium?selenium的原理是什么?
    • Selenium 自动化测试的流程是什么?
        • Selnium还有一些其他的操作
    • Selenium 如何定位动态元素?
  • Junit 测试框架
    • 注解
    • 断言
    • 执行顺序
    • 测试套件
    • 参数化
        • 单参数
        • 多参数
        • 动态参数

Selenium 自动化测试

什么是selenium?selenium的原理是什么?

手工测试、人工测试,随着功能的增加,版本的不多更新,仍然需要对旧功能进行测试,自动化测试就需要对一部分手工测试进行替代,提高效率,selenium就是一个web UI自动化测试工具。

浏览器驱动 WebDriver + Selenium 脚本 + 浏览器 可以实现对网页的完整自动化测试

selenium的原理

在这里插入图片描述

Selenium 自动化测试的流程是什么?

1)使用Java ,在maven 引入 selenium 依赖,同时配置好 WebDriver 浏览器驱动的环境

2) selenium 定位元素

​ css选择器 driver.findElement(By.cssSelector())

​ xpath driver.findElement(By.XPath())

  1. 定位元素后对元素进行操作,click、sendKeys、 clear、submit、getText、getAttribute

注意点:在selenium获取元素的时候,可能会因为代码执行的太快,页面还没有渲染完,导致元素还没有加载好,最终获取元素异常,获取不到。

那么selenuim使用几种等待的方式,来保证一定能获取到元素

1)强制等待

Thread.sleep(), 让当前线程进入到睡眠状态,程序停下来,等待页面渲染好,但是这个时间我们不能把握,会造成时间上的浪费,比如说一个用例停1s,一百个用例就停100s,极大的浪费时间

2)隐式等待

driver.manage().timouts().implicityWait(Duration)

在规定的时间内,轮询等待元素,一但出现立刻结束,节省了很多时间。隐式等待的作用域是WebDriver的整个生命周期中,所有的定位元素都要进行轮询,直到quit释放驱动。

3)显式等待

可以针对某一个元素进行等待,极大的节省时间,缺点就是写法较为复杂

1、创建一个WebDriverWait(驱动对象,等待时间)

2、调用util方法,参数是ExpectedConditions 类,可以指定某个元素满足某个条件结束等待,否则时间到了抛出异常

Selnium还有一些其他的操作

1)跳转页面

2)前进后退

3)系统的警告弹窗、输入弹窗

4)模拟鼠标键盘

5)选择下拉框

6)文件上传

7)屏幕截图

Selenium 如何定位动态元素?

1、如果id是动态的,定位时那就不要用id定位。用其他方式定位

2、还有一种情况就是这个元素一会在页面上方,一会在下方,飘忽不定的动态元素,
那就根据元素属性定位(元素的 tag、name的属性是不会变的,动的只是 class 属性和 styles 属性

Junit 测试框架

注解

@Test 标在一个方法上面,表示一个测试用例

@BeforeEach , 每一个用例执行前都会执行一遍

@BeforeAll 静态表示 , 所有的用例执行之前只执行一次

@AfterEach , 每一个用例执行后都会执行一遍

@AfterAll 静态表示 ,所有的用例执行之后只执行一次

断言

assertEquals(expect,actual) 判断预期的文本是否与实际文本一直,返回值是true、false

assertNotEquals

assertTrue 里面方式的是表达式,参数是boolean类型的

assertFalse

assertNull 判断是否是null,返回值是true、false

assertNotNull

执行顺序

Junit的默认执行顺序是不确定的,官方文档没有明确,我们可以用junit中的注解来设置测试用例的执行顺序

@Order(1) 执行顺序根据标注的数字,从小到大一次执行用例

测试套件

@TestCase

@SelectPackages 执行包中的所有测试用例

@TestCase

@SelectClass 执行类中的所有测试用例

参数化

单参数

@ParameterizedTest

@ValueSource(ints = {1,2,3,4,})

多参数

@CsvSource(value={“1,2,4”,“2,3,4”})

或者

@CsvFileSource ( value = “”) 导入 csv excel表格形式的文件

动态参数

@MethodSource(“”)参数是数据来源的方法名,如果不指定数据来源,默认找同名的静态方法

使用Stream流的方式来进行接收和传递

@ParameterizedTest
@MethodSource("methodDemo")
void autoDemo(){
    System.out.println(x);
}

// 单个动态参数传递
static Stream<String> methodDemo(){
    return Stream.of("zhansgan","lisi","wangwu");
}

// 多个动态参数传递
statci String<Argements> methodDemo1(){}
    return Stream.of(Arguments.arguments("lisi","20"),
                     Arguments.arguments("wawang","18"),
                     Arguments.arguments("chenli","11")
                    )
}

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

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

相关文章

ELFK(filebeat)部署

部署环境 主机名ip地址主要软件系统node1192.168.154.70ElasticSearh、KibanaCentos7.5node2192.168.154.60ElasticSearhCentos7.5Apache192.168.154.50Logstash、ApacheCentos7.5Filebeat192.168.154.40FilebeatCentos7.5 Node1节点上安装Filebeat #上传软件包 filebeat-6.2…

jmeter,性能测试,Locust

一。性能测试的概念 1.性能&#xff1a;就是软件质量属性中的 “ 效率 ” 特性 2.效率特性&#xff1a; 时间特性&#xff1a;指系统处理用户请求的响应时间 资源特性&#xff1a;指系统在运行过程中&#xff0c;系统资源的消耗情况 CPU 内存 磁盘IO&#xff08;磁盘的写…

【Spark学习笔记】- 4运行架构核心组件核心概念

目录标题 1 运行架构2 核心组件2.1 Driver2. 2 Executor2. 3 Master & Worker2. 4 ApplicationMaster 3 核心概念3.1 Executor 与 Core3. 2 并行度(Parallelism)3. 3 有向无环图(DAG) 4 提交流程4.1 Yarn Client 模式4. 2 Yarn Cluster 模式 5 分布式计算模拟5.1 Driver5.2…

利达卓越团队:打造投资界“天花板”,用行动创造财富

在这个充满竞争与挑战的新时代下,众多投资者纷纷开始寻找高收益项目。尽管拥有前卫的理想抱负和专业的投资经验,但抵不过一路上的“畔脚石”,大部分投资者会因为项目不稳定和风控经验不足等问题提前退场,未能在投资市场上获取红利。为了能够给这些投资者创造盈利机会,郑建祥、林…

Qt扫盲-QListView理论总结

QListView理论总结 一、概述二、提高性能三、使用注意 一、概述 QListView显示存储在model 中的item&#xff0c;要么是一个简单的非层次列表&#xff0c;要么是一个图标集合。这个类用于提供列表和图标视图&#xff0c;之前像这些 列表 和 图标视图 之前是由QListBox和 QIcon…

android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限

现象 storage下可读取&#xff0c;但/mnt/media_rw不可读取 /mnt/media_rw/A009-1B4F/rk3568_s-ota-20230704.zip (Permission Denied&#xff09; 解决方法 把/mnt/media_rw/ 替换为 /storage

基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(三)之知识测试阶段与评估模块

去雨去雾去雪算法分为两个阶段&#xff0c;分别是知识收集阶段与知识测试阶段&#xff0c;前面我们已经学习了知识收集阶段&#xff0c;了解到知识阶段的特征迁移模块&#xff08;CKT)与软损失&#xff08;SCRLoss&#xff09;,那么在知识收集阶段的主要重点便是HCRLoss(硬损失…

JavaScript中的模块化编程,包括CommonJS和ES6模块的区别。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 模块化编程概述⭐ CommonJS 模块⭐ ES6 模块⭐ 区别⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、…

苹果恢复微信聊天记录的3个实用方法!

愁死我了&#xff01;朋友们&#xff01;把手机借给了亲戚家的小孩玩&#xff0c;拿回手机后发现很重要的聊天记录丢失了&#xff0c;怎么办呀&#xff0c;有什么方法能够恢复回来吗&#xff1f; 微信是架起我们与家人、朋友、同事之间沟通的桥梁&#xff0c;无论是工作还是生活…

【软考】8.1 程序语言基本概念-成分-函数

《程序设计语言的基本概念》 汇编&#xff1a;将汇编语言翻译成目标程序执行编译&#xff1a;生成独立的可执行文件&#xff08;逻辑上与源程序等价的目标程序&#xff09;&#xff1b;直接运行&#xff1b;运行时无法控制源程序&#xff1b;效率高解释&#xff1a;不生成可执行…

mmap底层驱动实现(remap_pfn_range函数)

mmap底层驱动实现 myfb.c&#xff08;申请了128K空间&#xff09; #include <linux/init.h> #include <linux/tty.h> #include <linux/device.h> #include <linux/export.h> #include <linux/types.h> #include <linux/module.h> #inclu…

Mybatis 使用参数时$与#的区别

之前我们介绍了mybatis中参数的使用&#xff0c;本篇我们在此基础上介绍Mybatis中使用参数时$与#的区别。 如果您对mybatis中参数的使用不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybatis参数(parameterType)https://blog.csdn.net…

知识图谱和大语言模型的共存之道

源自&#xff1a;开放知识图谱 “人工智能技术与咨询” 发布 导 读 01 知识图谱和大语言模型的历史 图1 图2 图3 图4 图5 02 知识图谱和大语言模型作为知识库的优缺点 图6 图7 表1 表2 图8 图9 03 知识图谱和大语言模型双知识平台融合 图10 图11 04 总结与展望 声明:公众号转…

C# OpenCvSharp Yolov8 Pose 姿态识别

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace OpenC…

中国企业400电话在线申请办理

在当今竞争激烈的商业环境中&#xff0c;企业需要寻求各种方式来提升客户服务和市场竞争力。而拥有一个专属的400电话号码&#xff0c;不仅可以为企业带来更多的商机&#xff0c;还能提升企业形象和客户满意度。本文将介绍如何在线申请办理中国企业400电话&#xff0c;并提供一…

京东数据接口|电商运营中数据分析的重要性

在电商运营中&#xff0c;数据分析是非常重要的一环&#xff0c;它可以帮助电商企业更好地了解市场、了解消费者、了解产品、了解销售渠道等各种信息&#xff0c;从而制定更为科学有效的运营策略&#xff0c;提高销售效益。 数据方面用户可以直接选择使用数据接口来获取&#…

面试高频手撕算法 - 背包问题1

目录 1. 前言 2. 什么是 01 背包&#xff0c; 什么是完全背包 3. 01 背包 3.1 【模板】01背包 3.2 分割等和子集 3.3 分割等和子集 3.4 最后一块石头的重量 1. 前言 为什么要专门去搞一下这个背包问题呢 ? 因为作者已经在两场面试中吃了这个亏, 尤其是在面深信服的测开岗…

信创办公–基于WPS的EXCEL最佳实践系列 (条件格式)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;设置条件格式&#xff09; 目录 应用背景操作步骤1、选用条件格式1.1 筛选出迟到次数超过3次的数据1.2 筛选出早退次数位于前三的数据1.3 个人加班时长在总体中所占的在的位置 2、删除条件格式2.1 清除规则2.2 管理规则 应用…

钡铼BL124PN:简单快速转换Profinet到Ethernet/IP

钡铼技术BL124PN是一款高性能的Profinet转Ethernet/IP网关设备。该网关专为工业自动化领域设计&#xff0c;用于实现不同协议之间的互连和通信。BL124PN采用可靠稳定的硬件和先进的通信技术&#xff0c;具有以下主要特点&#xff1a; 协议转换能力&#xff1a;BL124PN能够将Pr…

WIN10 查看端口占用情况

输入命令&#xff0c;其中 5082 为需要查看的端口 C:\Users\chenjian>netstat -ano|findstr "5082"TCP 0.0.0.0:5082 0.0.0.0:0 LISTENING 21708可以看到 5082 这个端口被 “21708”这个进程占用了。 输入命令查看进程的信息 C…