自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

原创 Mysql查询 学生表 成绩表,查询每个班的数学平均成绩

查询每个班级数学的平均成绩,使用join on。学生ID 学生姓名 班级。学生ID 科目 成绩。

2025-03-15 11:31:32 200

原创 令人反思的BUG(最新整理)

这个bug是无意中发现的,但是开始没有想到这种情况,后续出现类似场景,需要注意。输入较长汉字时,显示正常,但是发现数字字母组合时,显示不正常,如下图。

2025-03-13 16:26:09 232

原创 redis支持哪几种类型

Sorted Set------有序集合。String----------字符串。List-------------列表。Set--------------集合。Hash------------字典。

2025-03-09 18:57:33 106 1

原创 接口测试用例场景有哪些

一般我们说的接口测试,都是接口功能测试,但可能还要考虑性能、安全测试等。-必填、为空、参数为null、参数范围、参数长度。-数据权限-不能操作他人的数据。-覆盖所有参数的正确数据。-覆盖必填参数的正确数据。-组合参数中的有效数据。

2025-03-08 16:58:52 141

原创 常见的算法题python

与目标值的大小,逐步缩小搜索范围,直到找到目标值或搜索范围为空,如果目标值大于中间元素,则就会在右边查找,如果目标值小于中间元素,则就会在左边查找。如果前面的数比后面的数大就交换两数,否则不交换,有N个数,则比较N-1趟。将数组分成两半,通过比较。

2025-03-08 11:17:37 232

原创 说一下MQ的好处

使用之前,用户发送请求A系统,需要在自己的本地库写,然后还得bcd 3个系统也要写入库,a系统写入本地库的时间加上bcd三个系统的时间,就是用户发送请求到接收请求的时间,这样相应时间比较慢。比如双十一,大量用户直接访问JD系统,如果系统不支持百万并发,很容易挂掉,使用MQ后,用户请求先进入MQ,然后京东系统以最大请求量去MQ里消费数据,这样就消峰平谷。比如A系统需要调CD系统,如果不需要调用D系统,则A系统需要修改代码,删除调用D系统的代码。如果新增E系统,也得需要A系统修改代码,调用E系统。

2025-03-07 18:20:30 208

原创 DELETE、DROP 和 TRUNCATE 的区别

3.delete删除后,数据可以回滚和回复,但是truncate和drop是DML语言,所以删除后,不能恢复。1.delete,truncate是删除数据,但是drop是删除数据以及表结构。2.应用场景,delete可以删除某些行数据,但是truncate是清空整张表。

2025-03-07 17:49:19 120

原创 测试计划的定义以及目的

测试计划是测试管理人员 对测试活动的一种规划,测试全过程的测试范围、组织、资源、原则等进行规定和约束,并制定测试全过程各个阶段的任务分配以及时间进度安排,并提出对各项任务的评估,风险分析和管理需求。

2025-03-06 08:18:28 251

原创 os模块-environ

os.environ 获取或修改环境变量。

2025-02-09 08:17:20 159

原创 统计日志文件中每种时间类型的数量

【代码】统计日志文件中每种时间类型的数量。

2025-02-09 07:43:23 246

原创 求不含有重复字符的 最长 子串 的长度

【代码】给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

2025-02-09 07:11:20 147

原创 【基础】容易记错的运算符号

/ 取整除 - 返回商的整数部分(向下取整)/ 除 - x除以y。

2025-02-09 06:28:50 98

原创 判断一个整数是否是回数

【代码】判断一个整数是否是回数。

2025-02-08 22:11:29 92

原创 脑补redis穿透、击穿、雪崩

大量缓存集体失效或过期,用户请求数据时都需要从数据库中重新加载,从而引起数据库压力剧增、性能下降,甚至系统崩溃的现象。,导致每次查询都会去查缓存,没有则去查数据库,导致每次都会去查数据库,如果量很大,导致数据库压力很大。,后续大量并发请求同时请求是小的数据,直接访问数据库,导致数据库负载剧增,造成系统性能下降甚至崩溃。2.加锁,缓存失效时只允许一个用户访问数据库,并将结果缓存,重建缓存。1.接口需要做入参校验,比如订单查询,如果订单id传入-1。比如下单,订单的缓存过期时间是过期的。

2025-02-07 10:30:33 197

原创 接口响应慢有哪些原因呢

3.中间件连接数配置,eg:tomcat/nginx/mysql。5.依赖的第三方系统响应时间比较长。6.还有可能是数据库原因,慢查询。4.Java线程的阻塞、等待。

2025-02-07 09:51:58 825

原创 大数据sql查询速度慢有哪些原因

1.索引问题可能缺少索引,也有可能是索引不生效2.连接数配置:连接数过少/连接池比较小连接数过3.sql本身有问题,响应比较慢4.缓存池大小可能是缓存问题(命中率>99%)5.加了锁6. redis(集体失效)

2025-02-06 23:42:56 1287

原创 mq消息丢了,有哪些现象?有什么补救措施

异步发送:生产者发送消息,然后等消费者处理完成后,会有一个回调结果mq消息丢了常见情况:1.生产者消息丢失可能由于网络问题,错误的主题、消息过大等原因导致消息发送失败2.消费者消息丢失怎么保证不丢失呢?【生产者】同步发送,拿到返回结果异步发送,回调函数发送方确认模式,当消息成功发送后,或者消息写入磁盘后,发送一个确认给生产者重试【消费者】开启ACK确认机制,可以确保消息被正确处理,如果获取到消息,则认为成功了,这个时候如果消费者宕机了。

2025-02-06 23:27:24 446

原创 微服务之间的通信调用有哪些

这些微服务都注册到服务注册中心(如Consul或Eureka)中,然后服务代理(如Zuul或Nginx)可以通过服务注册中心发现微服务的地址,并将客户端请求转发到相应的微服务。例如,用户服务的HTTP请求首先会发送到服务代理,然后服务代理根据请求路径将其转发到用户服务。它通过将方法调用封装成网络数据包并在不同的进程之间传输,实现不同服务之间的互相调用。消息队列:如 RabbitMQ、Kafka、RocketMQ 等,服务之间不直接调用,而是通过消息队列进行异步消息传递,实现服务之间的解耦和异步处理。

2025-02-06 22:44:38 211

原创 获取元素文本的方法有以下几种实现方式

可以通过element.get_text()来获取元素的文本内容。可以通过element.text来获取元素的文本内容。

2025-01-13 14:58:09 394

原创 元素定位不到可能的原因有哪些

页面加载了一部分,就开始对某个需要等全部javascript脚本执行完才出现的元素,这时候肯定是找不到的。比如写的是By.XPATH,但是表达式却是css的,或者xpath路径写的有问题。如果没有先切换到对应的window,就无法定位其中的元素。本来是1234,你写的流程是1243。比如某个元素的id值是动态的。

2024-12-27 10:52:36 502

原创 遇到验证码,如何处理呢

在selenium中使用add_cookie()方法将用户名和密码等登录信息写入浏览器的cookie中,再次登录时直接读取浏览器cookie即可。参考:https://www.cnblogs.com/gezirui/p/17583775.html。通过添加登录成功时所携带的cookie来跳过登录;3.问问验证码存储在哪,然后我们去读取。1.让研发提供一个万能的验证码。4.cookie绕过。

2024-12-27 10:28:15 332

原创 基本操作:iframe、alert

整个理解为一个大的房间,里面是客厅,driver进到客厅后,如果想操作iframe A里的数据,需要进入A,同理。如果你的目标元素出现在一个iframe标签下,则不能直接定位,必须先完成切换才能进行定位操作,如下图。如果操作其它房间,先从A出来,然后再进b。

2024-12-26 21:06:19 490

原创 【基础】使用str()时报异常:TypeError: ‘str’ object is not callable

print(data)上述运行时会报错。

2024-12-25 15:26:22 177

原创 同步和异步的区别是什么

异步的例子: 继续上述场景,用户在完成支付并下单后,系统需要发送订单确认邮件。这个过程是异步的,因为用户不需要等待邮件发送完成就可以继续浏览其他商品或进行其他操作。邮件发送可能是在后台独立进行的,即使邮件发送过程中出现问题,也不会影响用户的购物体验或订单的有效性。这个过程是同步的,因为用户界面会显示一个加载动画,用户必须等待系统确认库存后才能进行到支付环节。而发送确认邮件是异步操作,因为它是订单流程的一个非关键步骤,用户不需要即时得到这个操作的反馈。而后台发送邮件是异步的,用户可以继续使用应用的其他功能。

2024-12-24 12:13:40 496

原创 selenium执行js

日期选择框,不能输入,只能设置。移除readonly属性。

2024-12-24 11:57:18 374

原创 UI自动化断言思路

UI层结果判断根据页面表现来判断结果上述后两个是显示等待封装,模仿。

2024-12-23 22:15:51 418

原创 定位方式:xpath

preceding-sibling:当前元素节点标签之前的所有兄弟节点。following-sibling:当前元素节点标签之后的所有兄弟节点。preceding:当前元素节点标签之前的所有节点。following:当前元素节点标签之后的所有节点。ancestor:祖先节点 包括父。//div[@属性=“value”]parent:父节点。

2024-12-23 20:41:30 463

原创 定位方式:css

使用相对路径div ul #div下的所有ul,空格表示相对路径(这个实际中用的多一些绝对路径-一般不用绝对路径html>head>div,“>”表示根路径使用class名称定位使用.表示使用id定位使用#表示使用属性定位[属性名称]多个属性定位[属性1][属性2]属性模糊匹配^ 以…开头$ 以…结尾包含属性组合- 伪属性选择器注意伪类索引,从1开始例如。

2024-12-23 16:26:39 428

原创 作为测试leader或组长,你如何管理呢

1.进度跟踪:紧密掌握项目的整体进度情况,确保按照计划完成。比如我们之前用到的testlink,去看一下每个人的用例执行情况,是不是有什么阻塞问题,还有bug解决情况,遇到问题要及时调整。1.制定流程:建立规范的测试流程,包括测试计划的制定、用例编写、执行、bug追踪等。2.流程优化:根据项目情况,不断的优化测试流程,提升测试效率,比如频繁出现的缺陷类型,优化用例设计方法等。出现有冲突的时,及时的去调整,保障项目能够顺利进行。识别测试过程中的风险,比如需求变更了,人员请假了等等,并提前制定对应的措施。

2024-12-19 11:41:30 573

原创 【基础】nginx简单配置

ngix是一个代理服务器,常用的是反向代理功能,通过location 反向代理到对应的 后端服务器。

2024-12-17 11:09:23 353

原创 git简介

2.git branch 标记*表示当前分支。1.git branch xx 新建分支。1.遇到冲突手动合并之后,需要重新提交。4.git checkout 切换分支。2.个人分合并到 master。-线切换到master。

2024-12-11 10:26:17 301

原创 selenium学习:等待方式

参考expected_conditions里面的方法1.页面包含指定元素expected_conditions文件中的方法2.自定义显示等待-点击元素成功try:except:wait.until(click_success((By.LINK_TEXT,'进入个人中心')))# driver.find_element(By.LINK_TEXT,'进入个人中心').click()

2024-12-10 11:22:17 519

原创 selenium:新窗口切换、关闭

句柄就是你点击一个页面,跳转了一个新的窗口。你要操作的元素可能在原窗口上,也有可能在新窗口上。-如果窗口比较多的化,使用索引就很不方便,那就通过页面url或者title。当前页面A,点击跳转到页面B。

2024-12-06 22:48:53 666

原创 【元素操作】鼠标 -ActionChains

actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮ActionChains 的对象生成操作队列,在没有执行提交 perform() 之前,所有操作只是暂存于队列中,不会实际在页面上操作,需要执行 perform() 时才会实际执行操作。

2024-12-06 21:46:30 667

原创 python+selenium的八大定位方式

通过局部链接的文本定位,link_text使用全部文本内容匹配元素,partial_link_text可以使用局部文本内容来匹配元素,也可以使用全部文本内容匹配元素。方法:element = driver.find_element(By.PARTIAL_LINK_TEXT,“超链接的部分文本内容”)定位:.login-show.quick-login。如果class属性之间有空格呢,中间用.来代替。

2024-12-06 16:57:48 290

原创 01-Chromedriver下载与配置(mac)

ChromeDriver官网下载地址:https://sites.google.com/chromium.org/driver/downloadsChromeDriver官网最新版下载地址:https://googlechromelabs.github.io/chrome-for-testing/ChromeDriver国内镜像下载地址:https://registry.npmmirror.com/binary.html?ChromeDriver国内镜像最新版下载地址:

2024-12-06 15:57:30 2327

原创 给你个新的项目或需求,如何开展测试

对于以上需求的了解来,制定一个详细的测试计划,包括测试策略,比如功能测试以外,是否考虑稳定性、是否需要进行接口测试等、测试排期(包括测试用例编写时间、评审时间、轮次安排、release时间等)、测试人员分配以及风险把控。5.测试期间,要按照测试用例严格执行,后面还可以进行探索性测试,或者交叉测试,测试过程中,遇到问题,要及时提交bug,并且跟进。拿到新的需求或者项目后,首先通过需求文档、设计文档等,去 快速的熟悉需求,了解涉及哪些功能、模块,以及对其他业务的依赖等等。7.项目结束后,要及时复盘。

2024-12-05 17:01:07 440

原创 【Git学习】git fetch、git pull区别

即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。1、git fetch:使用git fetch更新代码,本地的库中master的。是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。2、git pull:使用git pull更新代码,本地的库中master的。1、git fetch:git fetch会将数据拉取到本地仓库,它。2、git pull:git pull是从远程获取最新版本。commitId不同#

2024-12-05 14:41:57 634

原创 Gitee配置以及如何将本地项目提交到远程仓库

在命令窗口中输入:git init( 命令用于在目录中创建新的 Git 仓库。步骤4:在命令窗口中输入:git push origin master(提交本地仓库到远程仓库 并指定远程仓库名和分支名)步骤1:在命令窗口中输入:git remote add origin 你的仓库地址(地将本地项目连接到远程Git仓库)步骤3:在命令窗口中输入:git commit -m “提交项目” (命令将暂存区内容添加到本地仓库中。1.打开我们的项目,此时项目中是没有 .git 文件的。2.将本地项目提交到远程仓库。

2024-12-05 14:09:11 993

原创 【框架】环境切换集成封装

在公司里可能会存在多套环境,每个环境对应项目的数据库、redis、域名、用户等等都不太一样,尽管我们有配置文件,但是手动改起来也是很麻烦,我们希望能够在框架里执行时,只需要指定环境名称即可,他们能够自动将各个环境配置信息切换到当前执行中来针对各个环境编写配置文件比如公司有sit环境,dev环境、test环境等,针对这些环境分别使用sit/uat/dev等来命名,分别在config目录下创建他们几个的环境配置文件,文件名称命名规则env_xxx.yaml。host.yaml- 存储环境ip和端口号等信息。

2024-12-05 10:11:59 497

空空如也

空空如也

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

TA关注的人

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