自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LYJbao的博客

记录成长

  • 博客(203)
  • 收藏
  • 关注

原创 Hashtable和HashMap的区别,除了线程安全外你还知道哪些?

Hashtable的查找、插入和删除操作平均时间复杂度为O(1),但是在极端情况下,因为哈希冲突的原因,可能会退化到O(n)。:HashMap中可以存储null值和null键,但是要注意,当使用null作为键时,由于无法调用null的hashCode()方法,因此只能将其放在哈希表的第一个位置,它们是无序的。:由于HashMap采用链表和红黑树的数据结构,可以更好地处理哈希冲突,因此HashMap的查找、插入和删除操作都是常数时间O(1),它的性能相对于Hashtable更高。

2024-09-08 17:47:27 784

原创 什么是幂等?如何保证接口幂等性?

幂等其实是在数学中提出的一个概念,对应到程序中,幂等就是说方法被多次重复执行时,所产生的影响和第一次执行时所产生的影响是相同的(程序中指的幂等性,其实一般是指业务上幂等)。2、为什么要考虑幂等性?3、如何保证接口幂等性?

2024-09-02 15:22:00 216

原创 测试-常见问题

然而,可以在Android应用的测试流程中结合使用JMeter和Monkey,以覆盖不同的测试场景和需求。测试用例是测试场景的描述和规划,而测试脚本则是测试用例的具体实现和自动化执行的工具。通过编写和执行测试脚本,可以实现对测试用例的自动化执行,提高测试的效率和准确性。综上所述,测试计划是一份全面而详细的文档,它涵盖了测试活动的各个方面,为测试工作的顺利进行提供了有力的保障。测试报告是软件测试过程中的重要文档,用于记录测试活动的结果、发现的问题以及对测试结果的分析和评估。

2024-07-27 15:50:31 98

原创 IDEA配置国内源

公司的项目的话,settings.xml就是公司特有的,问你的领导或者mentor要一下~2、如果还有问题,就把repository下的jar删除,重新下。重点2:检查对应目录下有没有settings文件。1、打开项目- 打开settings。重点1:勾选以下两个override。

2024-07-23 16:45:35 285

原创 RabbitMQ - 延迟消息 - 死信交换机

当一个队列中的消息满足下列情况之一时,就会成为死信(Dead Letter):消费者使用basic.reject或basic.nack声明消费失败,并且消息的Requeue参数设置为false消息是一个过期消息(达到了队列或消息本身设置的过期时间),超时无人消费要投递的队列消息堆积满了(可以给队列设置一个消息上限),最早的消息可能成为死信如果队列通过dead-letter-exchange属性指定了一个交换机,那么该队列中的死信就会投递到这个交换机中。

2024-07-14 16:03:29 921 1

原创 RabbitMQ如何保证消息可靠性

例如:我们在处理业务时,想要一个操作是幂等的,我们可以准备一个key value,当业务执行时,先判断redis中有没有这个key value,如果没有就写入这个redis,并执行业务后续操作,如果redis中已经存在这个kv了,就直接返回了~当消费者出现异常后,消息会不断重新入列到队列中,再重新发送给消费者,然后再次异常,再次重新入列,无限循环,导致mq的消息处理飙升,带来不必要的压力。那生产者是发送消息后,就一直等着这个回执,还是发送消息后,就干别的事了,等回执来了,再处理呢?其实这都是可以配置的~

2024-07-13 22:55:15 1251

原创 声明队列和交换机 + 消息转换器

Spring的消息发送,代码接收的消息体是一个Object,在数据传输时,它会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象~注:队列和交换机的声明是放在消费者这边的,这位发送的人他并不需要去关注发送给那个队列,但消费者这边是需要队列自己清楚应该监听那个交换机,监听那个类型的消息的~为了解决以上问题,我们可以使用JSON转换器~上述的方式还是很繁琐的。

2024-07-07 20:12:54 324 1

原创 RabbitMQ中常用的三种交换机【Fanout、Direct、Topic】

此时支付服务会把支付结果发送到交换机中,而短信服务就会去监听这个交换机,但是交换机不会把所有的消息都路由给短信服务,而只把支付成功的消息路由给这个短信服务。这种情况下,就需要使用到这个Direct交换机,短信服务下的队列和这个交换机设置一个key(例如:success),支付服务发消息时,支付成功RoutingKey设为success,失败为fail,交换机就会只把key为success的消息路由给短信服务了~上图中,就是,key为blue,消费者1去消费;一个只能接到新闻,一个只能接到和中国相关的消息~

2024-07-07 18:42:45 1506 2

原创 RabbitMq - Java客户端基础【简单案例 +Work模型】

也就是说,你在使用中,只需要调用Spring AMQP提供的接口就可以了,而Spring AMQP的底层是使用AMQP的(可以理解为AMQP是一种思想,Spring AMQP是它的实现);RabbitMq给java提供的原生的一些使用方法,过于的复杂不便于日常开发的使用,而Spring-AMQP对RabbitMQ进行了一层封装,让我们在使用中更加的简洁了~修改application.yml,设置preFetch的值为1,确保同一时刻最多投递给消费者1条消息,一条处理完了,才会收到下一条~

2024-07-07 17:14:15 1082 1

原创 RabbitMQ快速入门 - 图像化界面的简单操作

publisher:消息发送者consumer:消息的消费者queue:队列、存储消息exchange:交换机,负责路由消息virtual-host:虚拟主机,起到数据隔离的作用结合图来理解:消息发送者不是直接把消息塞到队列中,而是先把消息发到交换机,由交换机把消息路由到队列中;由上图可以发现交换机可以只路由给一个队列,也可以路由给所有队列;消费者监听队列,就可以拿到消息了~RabbitMQ的服务端(消息代理)就包括了交换机和队列两部分 ~

2024-07-06 16:42:11 1051

原创 异步调用 - 初识

根据上图理解异步调用: 例如正在跨年夜,我们要给跟多人发送新年快乐的消息,同步调用我们可以为,我们自己需要给一个人发送完新年快乐之后,他也给我们回复了同乐,然后我们再给第二个人发送新年快乐~ 异步调用我们可以理解为,我们使用微信的群发功能,我们把消息发出来,微信服务器作为一个消息代理,收到这个消息后,把这个消息广播出来,而我们的微信好友就会去监听这个广播,就会收到你的新年祝福了~上图分析:流程 - 进行支付操作时,我们先去扣除用户余额,扣除失败,可能是余额不足,支付操作结束;为什么想要异步通信呢?

2024-07-06 14:25:41 949

原创 Playwright的browser、context、page三层结构

2、BrowserContext(浏览器上下文)1、browser(浏览器)3、Page(页面)

2024-06-07 15:03:46 198

原创 Cookie和Session的区别?

作用的对象不同 cookie是客户端机制; session是服务端机制 安全性不同 cookie存储在客户端,所以可以分析存放在本地的cookie并进行cookie欺骗,安全性较低; session存储在服务器上,不存在敏感信息泄露的风险,安全性较高 存储的位置不同 cookie的数据信息存放在本地硬盘 session的数据信息存放在服务器的内存中(一旦重启,数据就会丢失) 存储容量不同 cookie存储的容量较小,一般<=4KB session存储容量大小没

2024-04-26 10:25:45 219

原创 playwright-断言

playwright 提供了一个 expect方法 用于断言。

2024-04-23 15:06:42 366

原创 playwright基本入门必备知识点

Playwright中,当我们定位元素后,对元素进行操作。如果说当时根据定位条件,找不到这个元素,Playwright并不会立即抛出错误,而是缺省等待元素时间为30s,在30秒内如果元素出现了,就立即操作成功返回~css selector定位和xpath定位,只介绍在Playwright写法哈~ 具体的细节语法其实和selenium中学到是一样的~方法创建的一个元素定位器(Element Locator)对象。通过这个对象来执行各种操作,如点击、输入等操作~

2024-04-23 08:56:48 442

原创 playwright基础【为什么使用?为什么快?原理?测试环境隔离?】

另外也可以通过slow_mo来控制执行速度,作用范围是全局的,从启动浏览器到操作元素 , 每个动作都会有等待间隔,方便在出现问题的时候看到页面操作情况~Playwright在查找元素的时候具有自动等待功能,如果你在调试的时候需要使用等待,你应该使用page.wait_for_timeout(5000)代替time.sleep(5),并且最好不要等待超时。注:这个只能作为助手,他主要是记录人对页面的输入,并不能取代人自己写代码,特别是获取页面上信息的代码,例如打印标题栏就没法自动化生成~

2024-04-21 16:50:35 141

原创 自动化测试原理,怎么理解?【UI自动化】

综上所述,UI自动化的原理是基于模拟用户操作来测试用户界面,通过界面定位、操作模拟和验证与断言等环节,确保用户界面的正确性和稳定性。同时,还需要考虑异常处理和环境管理等因素,以确保测试的全面性和可靠性。首先,UI自动化是一种通过自动化工具或框架模拟用户与用户界面交互的测试技术。在软件开发过程中,这种技术对于确保用户界面的正确性和稳定性起着至关重要的作用。

2024-04-12 17:33:53 449

原创 Playwright 和 Selenium 的区别

转载:Playwright 和 Selenium的对比_playwright和selenium对比-CSDN博客

2024-03-27 17:28:26 177

原创 【pytest、playwright】多账号同时操作

依照上图所见,就知道,一个账号是pytest-playwright默认的环境,一个是 账号登录的环境。

2024-03-27 17:11:35 867

原创 【pytest、playwright】allure报告生成视频和图片

在settiings中找到pytest_playwright,点击减号就可以删除了~你们搜索这个文件内容,关于allure的内容,都是我们做了修改的~要保证json文件中有值,否则会报错~里面就是截图,录屏,以及路由追踪~

2024-03-27 09:50:39 1196

原创 仿小红书网站——记录(前端-Vue3)

element-ui是适用于vue2,element-plus适用于vue3,我的这个项目是使用的vue3~

2024-03-27 08:54:52 1367

原创 【pytest、playwright】构建POM项目,以及解决登录问题,allure环境问题

我们写一个用例,让他登录一次,然后把登陆后的用户验证信息 保存中文件中,在以后的case中,我们只需要获取这个文件内容,把他自动填充到浏览器上下文中即可~【即使是上面的问题2,我们依然可以这么做,因为我们可以在这个方法中打断点,手动登录后再继续运行代码即可】生成测试报告,本地的话会自动打开浏览器的,如果失败了,可能是jdk有问题~pom项目的设计模式就是,先在pages封装登录页面,再去cases写用例。也有可能是环境有问题,你以管理员身份打开,再运行就可以了~先安装这些,后面有需要再安装即可。

2024-03-26 23:42:24 1436 1

原创 前端项目,个人笔记(六)【无限滚动 + pinia进行用户数据持久化 + 拦截器】

使用elementplus中提供的:当所有数据都加载结束后,需要停止加载:关于无限滚动的其他属性,可自行尝试~

2024-03-20 12:26:26 296

原创 前端项目,个人笔记(五)【图片懒加载 + 路由配置 + 面包屑 + 路由行为修改】

目录1、图片懒加载步骤一:自定义全局指令步骤二:代码中使用​编辑步骤三:效果查看步骤四:代码优化2、封装组件案例-传对象3、路由配置——tab标签4、根据tab标签添加面包屑4.1、实现4.2、bug:需要手动刷新4.3、解决方案一4.4、方案优化:onBeforeRouteUpdate钩子函数5、修改路由行为重构main.js文件:代码解释::这是指令的 钩子函数,它在被绑定的元素插入到父节点时调用。:使用@vueuse/core的API - 函数来观察 元素是否进入视口。:这是 的回调函数

2024-03-19 21:22:49 571

原创 前端项目,个人笔记(四)【Vue-cli 迁移 Vite 】

Vue CLI 是 Vue.js 的官方脚手架,用于快速创建和管理 Vue.js 项目。但是,出现了一个新的工具 Vite,它号称比 Vue CLI 更快、更轻量级。Vite 通过利用 ES6 模块的本地导入特性,让开发者可以在开发时更快地编译和构建项目。如果你已经使用 Vue CLI 进行开发,想要尝试 Vite 的话,那么本文就是为你准备的。本文将介绍如何将现有的 Vue CLI 项目迁移到 Vite 中。

2024-03-19 14:43:04 775

原创 前端项目,个人笔记(三)【Vue-cli - api封装-axios使用举例 + Pinia优化重复请求】

【都可以使用这个,好像是黑马老师写的,有点记不清了~】【使用自己写的后端项目就更好啦~】

2024-03-19 14:41:55 1404

原创 前端项目,个人笔记(二)【Vue-cli - 引入阿里矢量库图标 + 吸顶交互 + setup语法糖】

【Vue-cli - 引入阿里矢量库图标 + 吸顶交互 + setup语法糖】

2024-03-19 14:29:52 1049

原创 前端项目,个人笔记(一)【Vue-cli - 定制化主题 + 路由设计】

路由设计原则:找页面的切换方式,如果是整体切换,则为一级路由,如果是在一级路由的内部进行的内容切换,则为二级路由。卸载重装,使用npm。:设置一级路由页面渲染入口。

2024-03-14 09:46:01 941

原创 uni-app打包安卓app并安装运行【详细教程】

把链接转成二维码,就可以扫码下载了~开始运行后,刚才与你的电脑所连的手机就会有提示下载,你无视风险,继续安装就可以了,安装后,你的手机上就会有相应的app了~(发行中,这两次扫码安装都是不用让电脑和手机连接的,手机扫码就可以了,无视风险安装即可~)这里不要拔掉数据线!

2024-03-04 18:08:57 4991 1

原创 Jenkins上跑自动化项目,case出现错误时,导致项目运行时间过长,该如何处理?

带你解决问题啦

2024-01-24 10:27:32 681

原创 【playwright】将chromium浏览器更改为默认打开chrome;多浏览器时,想要使用chrome

多浏览器时,也要使用chrome,而不是chromium.该怎么办

2024-01-23 17:48:28 1336

原创 【pytest+playwright】pytest.ini文件中,配置base_url、有头模式/无头模式、指定浏览器、多浏览器、case并行、失败case:截图、录屏、tracing、重复运行

使用pytest.ini文件目的:使用 pytest CLI 运行测试【CLI:command-line interface,命令行接口】项目中两个基本的依赖记得添加:pytest.ini 文件是用于配置 pytest 测试用例运行规则的文件。pytest.ini 配置文件支持的参数有以下几类:匹配测试文件和测试函数的过滤参数测试用例执行参数测试报告输出参数临时文件及路径参数插件参数注意,创建好pytest.ini文件,添加以下内容:​。

2024-01-19 17:32:46 1455

原创 Axios基本使用,为学习后续的Vue服务【发送请求+并发请求+前端拦截器】

并发请求:将多个请求在同一时刻发送到后端服务接口,最后在集中处理每个请求的响应结果。不了解后端的宝子,也不会耽误学习,因为公司里会有写好的接口文档,直接使用就可以了。注:个人学习笔记,因自己学过后端,所以有关后端的代码,我在这里就不展示了~好啦,以上就是简单的学习,简单了解一下,axios的强大之处~格式其实还是挺简单的~

2024-01-11 22:18:49 703

原创 Vue新手村(二)

例如下面的例子【其他:.tab .delete .esc .space .up .down .left .right】此时,我们点击子div,也不会触发父div的alert,因为添加了.self,他只关心自己标签上的事件。.self:用来针对当前标签的事件触发——只触发自己标签上的特定动作,只关心自己标签上触发的事件,不监听事件冒泡。不管是点击子div,冒泡触发的,还是点击父div自己触发的,一共只触发一次~修饰符:用来和事件连用,用来决定事件触发条件或者是阻止事件的触发机制~

2024-01-11 21:47:19 1040

原创 Vue新手村(一)

新手快来学习

2024-01-07 00:00:36 1105

原创 Charles的基础使用教程【Mac】

简单了解

2024-01-05 18:26:54 1033

原创 面试被问到 HTTP和HTTPS的区别有哪些?你该如何回答~

面试常考,快来看看~

2023-12-06 16:11:21 758

原创 DNS的解析过程【面试常考】

【解释∶DNS是分布式域名服务器,每台服务器只维护一部分IP地址到网络地址的映射,没有任何一台服务器能够维持全部的映射关系】。

2023-12-03 16:44:17 249

原创 Map和Set小总结【温习】

Map 和 set 是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有: ①直接遍历,时间复杂度为O(N) ,元素如果比较多效率会非常慢 ②二分查找,时间复杂度为O(logN),但搜索前必须要求序列是有序的。

2023-11-26 19:19:22 988

原创 关于反射、枚举以及Lambda表达式你了解多少呢?快来看看吧~

Java的反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性,既然能拿到,那我们就可以修改部分类型信息。这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。但是常量举例有不好的地方,例如:可能碰巧有个数字1,但是他有可能误会为是RED,现在我们可以直接用枚举来进行组织,这样一来,就拥有了类型,枚举类型。而不是普通的整形1./*** User:龙宝*/优点:将常量组织起来统一进行管理。

2023-11-26 18:02:31 998

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除