- 博客(166)
- 收藏
- 关注
原创 Python中的序列化和反序列化
在Python中,**序列化(Serialization):将Python对象(如字典、列表等),以便存储或传输。:将字节流(如JSON字符串)。
2025-06-29 19:38:20
197
原创 Docker环境搭建和docker性能监控
1、它是什么docker是一个开源的应用容器引擎,基于GO语言,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,容器是完全使用沙箱机制,相互之间不会有任何接口。容器类比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器,和集装箱放在哪个货船【服务器】或者哪个港口(操作系统没有关系。如果容器项目要放在其他的服务器上,直接拷贝过去就可以了。--可移植项目的容器可移植性隔离性一键部署的方便性。
2025-06-25 20:33:37
212
原创 MySQL数据库监控
1、下载mysqld_exporter,解压:tar -xzvf mysqld_exporter-0.12.1.linux-amd64.tar.gz 【我们百度网盘的工具包里有:mysqld_exporter-0.12.1.linux-amd64.tar.gz】上配置文件的参数启动mysql_exporter服务 : ./mysqld_exporter --config.my-cnf=./my.cnf & 【export默认是9104端口】【性能问题常见: 连接池的问题/慢查询的问题/锁竞争】
2025-06-25 20:27:44
275
原创 性能测试 —— 数据库的连接池和主从同步和分表分区
这样之后数据库的连接都是通过连接池进行管理的,对数据库的连接数量在入口处就做了一个限制,不是用户来控制其大小的,而是由系统自己来控制的,这样就起到一个对后端数据库服务器的很好的保护作用。所以基本上连接后端数据库服务都是通过连接池控制的。2、数据库建立连接的过程2、不使用数据库连接池的步骤。
2025-06-24 22:08:27
801
原创 基于“定时任务捞取一批数据,再将数据传输给另外的系统”场景,设计测试用例
通过从功能、性能、可靠性、数据一致性、安全性、兼容性、监控与日志等多个维度设计测试用例,可以全面覆盖“定时任务捞取一批数据,再将数据传输给另外的系统”这一场景的测试需求。确保系统在各种正常和异常情况下都能稳定、高效、安全地运行。
2025-06-24 14:10:27
820
原创 MySQL 查询数据连接方式详解
连接类型优点缺点适用场景INNER JOIN性能好,结果精确可能丢失数据需要精确匹配的记录LEFT JOIN保留左表全部数据右表可能有NULL主从表关系,主表必须保留RIGHT JOIN保留右表全部数据左表可能有NULL从表必须保留的情况FULL JOIN数据最完整性能差,MySQL不支持原生需要完全数据合并CROSS JOIN生成所有组合结果集极大特殊场景如测试数据生成语法简单不可控,易出错不推荐生产使用SELF JOIN处理层级数据SQL较复杂。
2025-06-23 22:35:41
841
原创 性能测试 —— 索引及SQL优化以及慢SQL案例
1、概念:索引是一种数据结构,用于帮助我们在大量数据中快速定位我们要查找的数据,主要作用是加快我们查找数据的速度。【提高查询效率】类比一下书/字典的目录:加快查找内容的速度。数据库表的数据: 查询过程跟你们查字典的过程类似,索引--目录: 必须要全表查询,速度快很多。本质上 索引是一个数据结构,需要存储在内存/磁盘里。所以索引创建 不能滥用。【提升速度和占用空间之间取平衡】2、案例-- 0.152s-- 0.000s id是一个主键索引字段,快的不止一个数量级。
2025-06-19 14:59:52
157
原创 性能测试 —— 数据库的基础知识和存储引擎
用来创建或删除数据库 以及表 DROP(删除)\CREATE(创建)\ALTER(修改)用来定义或改变表结构、数据类型、表之间的链接和约束,用在建表上这个部分数据设计者--开发会用的会多。2、
2025-06-16 22:49:23
539
原创 性能测试 —— CPU介绍&监控工具&性能调优
1、CPU介绍1、概念CPU(中央处理器-Central Processing Unit)),是一块超大规模的集成电路,是计算机的运算核心【拿到数据后先计算】和控制核心【然后再根据计算结果去控制】,类似于人的大脑,全局指挥。
2025-06-16 15:23:14
209
原创 性能测试 —— 磁盘介绍与性能调优
磁盘用于持久化存储的数据的- 优点:可持久化存储 【内存断电丢失】,空间比较大- 缺点:速度慢磁盘的类型:- HDD(Hard Disk Driver):传统硬盘,即机械硬盘;- SSD(Solid State Disk):固态硬盘- 固态硬盘的读写速度远高于机械硬盘,约为500MB/s,而高端M.2固态硬盘的读写速度可能高达7000MB/s;机械硬盘的速度约为120MB/S- 查看磁盘类型命令:lsblk -d -o name,rota- 结果rota=1:表示磁盘有旋转部件(HDD)
2025-06-16 15:00:17
687
原创 性能测试——netstat工具(分析网络瓶颈)
netstat网络监控的命令,统计端口和网络数据传输情况 【系统自带 不需要安装2、参数介绍① -n :拒绝显示别名,能显示数字的全部转化成数字② -t :显示TCP端口 -u:显示 UDP协议的端口③ -l:列出所有监听的服务状态④ -p:显示建立相关链接的程序名⑤ -i:显示自动匹配接口的信息3、netstat -nptl | grep 8080 : 过滤8080端口的信息,一般用来查看端口是否被占用,以及被哪个进程占用。
2025-06-16 12:11:32
280
原创 讲一下进程和线程
线程可以由应用程序【进程】自己内部控制,同一个进程内的多个线程共享内存资源使用 【具体创建多少,以及是否提前创建还是临时再创建,由程序自己控制】线程本质上可以说一种更加轻量级的进程,一个进程可以管理多个线程, 进程最终的数据是由线程来管理的。进程是操作系统层面管理程序运行的一种概念【单元】,程序运行是以进程的方式运行的;【举例: 小鹅通-- 进程,可以有多个线程具体执行操作:评论,语言传输等】线程是没有端口号的,多个进程下的多个线程共享进程的端口号。口,代码指令加载等操作都必须要在进程层面来实现的;
2025-06-15 23:02:45
248
原创 性能测试——服务器架构和网络性能调优
一个http请求过来到服务器: 先到网卡,网卡没有存储功能,会在内存的网络缓冲区暂时存储-->通过主线告知CPU有网络数据来了-->CPU需要执行指令。操作系统代码指令+数据存在磁盘里,当网咖有数据来了,会把数据和指令夹在到内存,CPU从内存里读取对应的指令去执行。虚拟机:一般公司不会使用虚拟机作为项目的服务器,除非测试环境。---无需花费,性能最低。:价格便宜,根据自己的情况调整配置。---类似一个大房子中的单间。主板上的总线的连接以上四个部分,保证相互通信。2、硬件:cpu、内存条、磁盘、网卡。
2025-06-15 00:15:02
131
原创 性能测试——搭建Prometheus+Grafana平台(超详细版)
在线安装 yum install -y grafana-9.5.21-1.x86_64.rpm【或者rpm -ivh grafana-9.5.21-1.x86_64.rpm】图解释:Jmeter通过对服务器进行压测,得到性能的业务指标,再通过后端监听器把数据传输给influxdb存储,grafana从influxdb里读取数据展示。时序数据库:是一种时间相关的非关系型数据库,按照时间序列记 录数据,每一条数据都有一个时间,很方便用线性图展示数据。【可以放在之前的助攻机上或者新建一个空的机器上】
2025-06-13 22:11:37
770
原创 Jmeter——JDBC连接数据库相关
检查 JDBC Connection Configuration 和 JDBC Request 中框出来的内容,要保持一致。1、连接数据库后,有JDBC request,运行后,“查看结果数”中没有数据,该怎么办?
2025-05-28 23:42:51
471
原创 Jmeter一些元件使用的详细记录
文件放在bin目录下,属于相对路径读取文件,如果使用绝对路径则需要改为l添加盘符的路径,如:D:/apach/jmeter/bin。
2025-05-27 22:16:46
449
原创 Python中的队列详解
以下是定义队列以及一些简单的用法# 创建一个队列# 常用方法 q.put()将元素放入队列# q.qsize() 返回队列中的元素数量# q.get() 从队列中取出并返回一个元素。如果队列为空,会阻塞直到有元素可用。# empty(): 判断队列是否为空,返回 True 或 False。# full(): 判断队列是否已满(如果队列有大小限制)。3、4、
2025-02-12 20:07:49
486
原创 性能测试入门&基本概念
驱动:多个人,同时使用中间过程:分析指标数据的背后意义产出:可能存在的问题、性能指标数据性能测试中,预期结果和实际结果,是否一致,不是关注的。
2024-04-08 21:15:36
517
原创 浏览器如何定住页面
页面中有元素或者页面体节内容后很快消失,使用这个工具。第二步:点击Source,操作功能。第三步:点击关闭按钮,即可定住页面。第一步:打开开发者工具。
2024-03-12 20:55:05
905
原创 常用linux命令集合
1、查看端口占用方式一命令模板:$: lsof -i:端口号举例:$: lsof -i:80方式二命令模板:$: netstat -anp tcp | grep 端口号举例:$: netstat -anp tcp | grep 9999参考:mac系统端口占用解决_mac 端口占用_张俊杰1994的博客-优快云博客
2023-12-05 11:46:03
744
原创 接口测试 — 到底在做什么?
接口测试在行业存在很久,只是部分同学对于接口这个概念从根本上不清楚,不理解,不知道是什么,该怎么做。所以为什么要做接口呢?1、http网络协议的介绍。3、接口关联的测试实现。
2023-11-25 23:39:58
338
原创 Python —— 深拷贝&浅拷贝
深拷贝(Deep Copy):深拷贝创建了一个新的对象,该对象与原始对象的内容相同,包括所有的嵌套对象。深拷贝产生了一个完全独立的复制,修改原始对象中的可变对象不会影响新对象。示例代码:print(original_list) # 输出:[5, 2, [6, 4]]print(deep_copy_list) # 输出:[1, 2, [3, 4]]浅拷贝创建了一个新的对象,该对象与原始对象的内容相同,但是对于可变对象(如列表和字典)来说,新对象只是原始对象的一个引用。
2023-11-08 18:06:14
392
1
原创 Python —— UI自动化用例前置处理&日志封装
前置顾名思义是在执行测试用例之前做的一些事情,在自动化测试时会碰到用例执行前需要做一些前置操作,以及用例执行后需要做一些后置操作,比如登录、退出等,通过pytest fixture可以很方便实现。将这个前置放在项目目录下的conftest.py文件中,可以实现数据共享,不需要import 导入 conftest.py,pytest用例就会自动查找。对 于一些公共的fixture我们可以将其存放到conftest.py进行管理。
2023-10-27 21:18:26
1301
2
原创 Python —— UI自动化之Page Object模式
Page Object Model(页面对象模型), 或者也可称之为POM。在UI自动化测试广泛使用的一种分层设计 模式。核心是通过页面层封装所有的页面元素及操作,测试用例层通过调用页面层操作组装业务逻辑。
2023-10-22 23:03:12
1519
原创 Python —— UI自动化之使用JavaScript进行元素点亮、修改、点击元素
修改元素主要体现在设置和移除元素中,如下:设置属性:setAttribute移除属性:removeAttribute使用JavaScript设置元素举例说明:使用JavaScript移除元素举例说明:setattribute方法详解_笔记大全_设计学院使用场景:使用selenium的click()方法去点击一些按钮时,会出现:Other element would receive the click 提示,为了解决这个问题,可以使用JavaScript的点击解决。
2023-10-22 14:10:10
770
原创 Python —— 验证码的处理&执行JavaScript语句
很多的网站都在登录页面加入了识别文字,识别图片,拖动拼图的验证码方式来防止爬虫、恶意注册 等,如果是做自动化,需要绕过验证码才能进入下一步操作,那么有4种方案可以解决我们遇到的问题。
2023-10-20 19:49:20
606
原创 Python —— 特殊场景处理(下拉框、鼠标、键盘操作&文件上传)
Keys()类提供了键盘上所有按键的方法,常用的键盘按键操作如下:send_keys(Keys.BACK_SPACE) #删除键(BackSpace)send_keys(Keys.SPACE) #空格键(Space)send_keys(Keys.TAB) #制表键(Tab)send_keys(Keys.ESCAPE) #回退键(Esc)send_keys(Keys.ENTER) #回车键(Enter)send_keys(Keys.CONTROL,‘a’) #全选(Ctrl+A)
2023-10-13 23:56:48
1866
1
原创 Python —— UI自动化之 三大等待与三大切换
全局应用,它适用于WebDriver会话期间中所有查找的Web元素(通过findElement方法)只能等待元素存在,不能适用条件更复杂的情况,如:元素可点击、元素可见1、如果超过隐式等待的设置时间还是找不到元素,就会抛出了NoSuchElementException-找不到元素异常2、放置的位置,一般我们会将其放置到driver的初始化之后3、全局生效,只需要设置一次,之后通过find_element去找元素都会有隐式等待的效果4、等待条件的区别,只能等待元素存在。
2023-10-13 11:58:02
1175
原创 Python —— 接口测试之使用requests发起请求实战
json参数:requests库,针对请求体格式为application/json的,独自写了一个json参数的处理机制,数据类型是字典。因此,如果使用接送传参,只需要将参数写为字典的格式即可发起请求。data参数:data为字典类型,默认的请求体格式为的application/x-www-form-urlencoded。1、params参数:get请求,请求参数一般是拼接在url后面的,因此请求参数使用params参数(字典类型)3、verify参数: 遇到发起https请求的时候,要证书。
2023-10-11 16:12:05
2186
1
原创 Python —— 接口自动化(1)
1、主流的工具类型 - jmeter,postman,apifox,fastapi,apipost....2、公开的自动化平台 - metersphere,yapi....3、公司内部自研平台 -不论是平台还是工具,设计理念都差不多,因此相比之下,使用代码自己去完成框架搭建,是一种当下很重要的能力。
2023-10-11 10:54:35
229
原创 Python —— UI自动化之八大元素定位
xpath是一种path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标。xpath基于XML文档树形结构,是XML路径语言,用来查询xml文档中的节点。xpath既可以用于XML,也可以用于HTML。以下介绍xpath的定位方式。
2023-10-09 00:08:55
3854
原创 Python —— pytest框架
1、搭建自动化测试框架的思路和流程,任意测试手段流程都是一致的:手工测试、自动化测试、工具测试不需要安装,不能自动发现测试用例,手动收集用例pytest:第三方库,需要安装导入使用:智能自动收集所有用例,使用更广泛- 安装: pip install pytest- 导包:import pytest3. unittest和pytest都是单元测试框架,都可以用来编写测试用例,运行用例,生成报告,实现测试前置和后置等。
2023-09-22 14:10:21
3958
2
原创 Python —— excel文件操作(超详细)
很多公司还是用excel去管理测试用例的,所以为了减少重复繁琐的导出导出工作,协会如何用代码操作excel表格。
2023-09-21 16:32:36
18936
4
原创 Python —— 类和对象
1、init方法在类定义的时候,就会给对象定义实例属性2、初始化对象过程:函数的名字是固定的不能变2、实例化对象的过程,会调用init方法4、实例属性都会在init函数里去定义,基本上不会在外面去定义5、init方法没有返回值,不能写 return,写了默认是None# 定义类class Car:# 定义类的属性wheel = "四个轮子"# 定义init方法,并且在init中定义了2个对象的属性,cl和lgprint(f"正在生成一辆车···")
2023-09-19 18:31:56
1922
原创 Python —— 捕获异常(try-except、raise)&日志模块(logguru)
一般是开发者控制不了的地方,例如:用户输入数据、用户传参、函数返回值调用,需要加上异常捕获。1、查看控制台的报错信息,报错信息会显示行号、点击文件可以跳到问题行。真实项目情况下,需要对不同的报错信息进行不同的处理:记录日志,警告,发送邮件等。try中的代码不报错,不会执行except中的语句。- 最后加上Exception 兜底。如果报错,会执行except中的代码。- 尽量去区分异常进行捕获,优先使用。机制不会因为报错影响后面的代码运行。1、先运行 try中的代码,
2023-09-14 22:24:57
4663
原创 Python—— 模块和包、以及导入模块和包
是一个Python文件,以py结尾的文件,一般会包含python语句、函数、队形定义等,可以认为模块是Python文件的高级叫法~
2023-09-14 21:03:58
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人