- 博客(107)
- 收藏
- 关注
原创 Grafana
Grafana 是一款广泛使用的开源数据可视化与监控平台,通过与 Prometheus、InfluxDB、Elasticsearch 等多种数据源集成,提供强大的监控、数据展示和告警功能。其告警体系在及时通知系统异常、保障业务稳定性方面起到关键作用。Grafana 的告警体系分为以下几个部分:告警规则:告警通道(Notification Channels):告警状态:告警组(Alerting Groups):告警规则定义触发告警的条件,包括以下内容:Grafana 支持多种告警通知方式,常见的通知通道包括:
2025-01-21 14:59:02
1198
原创 SkyWalking
SkyWalking 是一款强大的 APM 工具,能够帮助开发和运维团队监控、追踪、诊断微服务架构中的应用性能。它通过分布式追踪、日志管理、性能监控等功能,提供了对复杂应用系统的全面可视化支持。SkyWalking 适用于分布式系统、微服务架构、容器化应用等环境,可以显著提升系统的可观测性,帮助团队及时发现和解决性能瓶颈和故障。
2025-01-21 14:53:14
1057
原创 ELK介绍
ELK Stack是一个强大的日志管理和分析平台,适用于大规模日志存储、实时搜索和数据可视化。提供高效的数据存储和搜索功能,Logstash用于数据收集和处理,Kibana提供可视化界面帮助用户查询、分析和展示数据。这种架构广泛应用于日志管理、性能监控、安全分析、业务分析等场景,帮助企业实时跟踪和分析大数据环境中的信息。
2025-01-21 10:58:36
1821
原创 Docker 和 Kubernetes
Docker 使用指南Docker用于容器化应用程序,并简化应用程序的构建、部署和管理。Kubernetes用于大规模的容器编排,提供自动化部署、扩展和管理。Docker 和 Kubernetes 配合使用时,Docker 提供了容器的基础设施,Kubernetes 管理这些容器并确保应用的高可用性和可扩展性。通过这两者的结合,开发人员和运维人员可以更加高效、灵活地管理和部署现代化应用。
2025-01-21 10:37:36
694
原创 GoReplay 流量录制与回放
流量录制GoReplay允许通过命令行录制HTTP请求流量,并保存到文件或其他输出目标。录制的流量可以是原始请求和响应数据,记录下来后可以用来模拟或测试。功能长参数形式短参数形式输入文件输出目标过滤器无短参数监听源(输入流)-r输出文件并发控制-w5延时控制-r100输出结果(stdout)-o回放速率-r10帮助信息-h获取版本-v设置目标接口类型。
2025-01-20 11:54:20
1030
原创 整体隔离版全链路压测
是指在进行全链路压测时,为了确保测试的准确性、避免对生产环境的影响,使用一个独立、隔离的环境来模拟整个系统的所有服务、依赖和流量,从而在不影响实际业务的情况下进行高负载、压力测试,评估系统在极端条件下的性能表现。全链路压测是指模拟从用户端到后端所有服务的请求链路,以确保系统的每个环节都能承载高并发、长时间的压力。通常它涉及多个系统模块,包括前端、API网关、微服务、数据库等。而“整体隔离版”强调的是,这些测试都在一个与生产环境隔离的环境中完成,确保不会影响生产系统的稳定性和数据安全性。
2025-01-20 11:13:35
594
原创 客户端/服务端 负载均衡
在分布式系统中,负载均衡是确保系统高可用性、提高系统吞吐量和响应时间的一种关键技术手段。负载均衡可以分为和,它们各自有不同的实现方式,适用于不同的应用场景。客户端负载均衡是指负载均衡的决策由客户端来进行,客户端会根据可用的服务器节点列表、负载策略和路由算法等信息,直接向某个服务器发送请求。
2025-01-20 11:01:58
1227
原创 JMeter 测试Dubbo 接口
自定义 Java 请求:通过编写 Java 类来调用 Dubbo 服务。Dubbo 插件:使用 JMeter 中的 Dubbo 插件来简化 Dubbo 测试配置。HTTP 请求模拟:当 Dubbo 服务暴露 HTTP 或 REST 接口时,可以使用 JMeter 的 HTTP 请求功能进行模拟测试。根据你的实际需求,选择合适的方法进行测试,能够有效验证 Dubbo 服务的功能和性能。
2025-01-20 10:54:58
1239
原创 Spring Cloud 与 Dubbo 的区别
Spring Cloud 与 Dubbo 的区别特性 Spring Cloud Dubbo 主要目标 提供微服务架构的完整解决方案,包含服务注册、配置管理、断路器等 专注于高效的 RPC 服务框架,强调服务治理和性能 服务注册与发现 支持 Eureka、Consul、Zookeeper、Nacos 等多个注册中心 支持 Zookeeper、Nacos 等注册中心 服务协议 默认使用 HTTP、Rest、WebSocket 等协议,基于 Spring
2025-01-20 10:48:39
222
原创 Nacos 和 Zookeeper
在分布式系统中,是实现微服务架构的核心之一。服务注册中心是一个集中管理的地方,服务提供者在启动时会向服务注册中心注册自身的网络地址等信息,服务消费者可以通过注册中心查询到服务的网络地址,从而进行调用。常见的服务注册中心有和,它们各有特点,适用于不同的场景。
2025-01-20 10:32:37
1176
原创 MQ架构测试
进行消息队列架构测试时,必须考虑消息丢失、幂等性、解耦等方面的测试,测试需要模拟多种极端场景来确保系统的健壮性和可靠性。在实际测试中,除了关注常见的同步和异步模式、刷盘策略外,还需要重点测试消息的重复处理、丢失、顺序性及扩展性等关键问题。对于One-way生产者单向发送模式,虽然能提高吞吐量和降低延迟,但也需要特别关注可能带来的消息丢失和系统不一致性的问题,确保在高并发和高负载下依然能够保证消息的可靠传递。
2025-01-18 16:20:42
841
原创 Redis 部署模式
特性单兵模式(Standalone)哨兵模式(Sentinel)集群模式(Cluster)架构单个 Redis 实例主从架构 + Sentinel 监控分布式架构,多节点分片存储数据复制无主从复制主从复制,数据分片故障转移无自动故障转移(Sentinel)无单点故障,自动故障转移扩展性无无支持水平扩展,自动分片适用场景小型应用、开发环境中型应用,要求高可用性大规模数据存储,高并发应用单兵模式:适用于简单应用或开发阶段,不需要高可用性。哨兵模式。
2025-01-18 15:59:07
653
原创 Redis 数据存储类型
Redis 提供了丰富的数据存储类型,能够支持多种场景的需求,如缓存、队列、统计、实时数据处理等。选择合适的数据结构,可以极大提高应用的性能和灵活性。
2025-01-18 15:56:38
1074
原创 Redis瓶颈和调优
Redis 性能优化是一个综合性的过程,涉及内存管理、数据过期与清理、慢查询优化、持久化设置、并发控制以及集群扩展等方面。针对不同瓶颈,采取不同的优化策略,能够有效提升 Redis 的响应能力与稳定性。通过合理配置过期策略、使用合适的数据结构、优化慢查询、利用 Redis 集群和负载均衡等手段,可以确保 Redis 在高负载和高并发的场景下,仍能保持高效运行。在使用 Redis 时,性能瓶颈可能会对系统的响应时间和吞吐量产生较大影响。以下是 Redis 常见的性能瓶颈分析及调优建议。
2025-01-18 15:53:33
870
原创 Redis性能测试
性能测试:通过工具如wrk等进行 Redis 性能评估,关注吞吐量、延迟和稳定性。缓存预热:通过定时任务或启动时预加载热点数据,避免缓存为空带来的性能损失。缓存雪崩:通过避免过期时间一致性、设置不同过期时间等措施来防止缓存雪崩。缓存击穿:通过加锁机制、缓存预热等措施,避免热点数据缓存失效时对数据库的冲击。缓存穿透:使用布隆过滤器、缓存空值等方法,避免无效请求直接访问数据库。合理的缓存设计和优化措施可以有效提升 Redis 的性能和系统的稳定性,确保高并发场景下的良好表现。
2025-01-18 15:35:03
1288
原创 Redis 和 MySQL 结合使用
Redis 用于缓存热点数据,提升查询速度。MySQL 用于持久化存储,处理复杂查询。结合使用时,通常需要处理缓存一致性、缓存失效、缓存穿透等问题。通过合理的策略(如缓存更新、布隆过滤器、延时双删等),可以提高系统的性能、可靠性和扩展性。
2025-01-18 15:28:44
890
原创 Nginx调优
但是,随着系统负载的增加,Nginx 的性能可能受到多方面的影响,因此进行适当的调优至关重要。总的来说,Nginx 的调优应该结合具体的硬件环境、流量需求和业务特点,通过灵活调整配置,优化资源利用率和请求响应速度,从而提升整体性能和系统的稳定性。:根据服务器的处理能力和流量特性,选择合适的负载均衡策略(如轮询、最少连接等),提高系统的分布式处理能力。:设置 Nginx 处理客户端请求头时的缓冲区大小,避免处理大请求头时出现错误。:启用 HTTP/2 协议,禁用弱加密算法,确保安全性和更好的性能表现。
2025-01-18 15:21:30
844
原创 判断nginx的请求是否存在堆积
在这种情况下,即使 Nginx 能够接收大量请求,后端服务处理请求的速度却较慢,导致请求在 Nginx 队列中堆积。通过监控服务器的系统资源(CPU、内存、磁盘、网络等),可以帮助判断是否存在资源瓶颈,导致请求堆积。错误,通常表示后端服务器处理请求的速度过慢,导致请求在 Nginx 上堆积。通过这些方法的综合分析,你可以及时发现和解决 Nginx 请求堆积问题。配置决定了服务器的处理能力。如果连接数过多,Nginx 可能会受到资源限制,导致请求堆积。数量过少,说明系统正在忙于处理请求,可能存在请求积压。
2025-01-18 14:58:07
825
原创 Nginx 集群测试
的部署和维护过程中,为了确保系统的高可用性、性能和扩展性,必须进行全面的测试。集群有效性测试的主要目的是验证 Nginx 集群的基本功能是否正常工作,确保流量分发和负载均衡按预期运行。:测试通过增加 Nginx 实例或后端服务器的数量,集群的负载均衡是否能够正确分配流量,并保持稳定性。:测试在某个 Nginx 实例宕机时,集群是否能够自动转发流量到其他可用的实例,保证服务不中断。:随着集群规模的扩展,监控 Nginx 集群的性能,确保它能够处理更多的请求而不出现瓶颈。
2025-01-18 14:37:15
918
原创 Nginx 分发策略
指的是如何将客户端请求根据一定的规则或算法,分配到不同的后端服务器上。IP 哈希是基于客户端请求的 IP 地址计算一个哈希值,并根据这个值将请求分发到不同的后端服务器上。加权最少连接算法是最少连接算法的一个改进版本,它结合了服务器的权重和连接数。它根据服务器的负载情况来决定请求的分配,优先选择当前连接数最少的服务器。加权轮询是轮询算法的变种,它允许为每台服务器设置权重,权重大的服务器分配到的请求更多。选择合适的分发策略,可以确保 Nginx 负载均衡的高效性和系统的稳定性。在 Nginx 中,
2025-01-18 13:48:56
932
原创 Kafka 控制生产者流量
限制发送速率为每秒1000条消息# 发送消息')# 等待指定时间,控制发送速率调整和batch.size:控制生产者的内存缓冲区大小和批次大小。配置linger.ms:通过设置延迟来控制消息批量发送的频率。控制请求超时和重试策略:避免过多重试造成的负载。使用自定义速率限制:在生产者应用中实现速率控制。调整和:控制单个请求的大小和等待时间。这些配置结合起来,可以有效地管理 Kafka 生产者的流量,从而提高系统的稳定性和性能。
2025-01-17 13:08:53
1268
原创 【SQL】查询前三名
使用ORDER BY和LIMIT来查询前3名学生。SQL Server:使用TOP关键字来查询前3名学生。Oracle:使用ROWNUM或来查询前3名学生。
2025-01-17 13:04:39
505
原创 深拷贝和浅拷贝
浅拷贝:仅复制对象本身,嵌套对象共享引用,修改嵌套对象会影响原对象。深拷贝:复制对象及其所有嵌套对象,修改新对象不会影响原对象,二者完全独立。
2025-01-17 12:51:30
323
原创 APP 性能测试
APP 的性能测试主要聚焦于以下常见场景,涵盖不同维度的性能指标,确保应用在各种条件下运行平稳、高效。通过以上场景测试,结合高效的工具和测试方法,可以全面评估移动端 APP 的性能表现,并针对问题制定优化策略。
2025-01-13 20:33:34
1139
原创 pytest 常用插件
这些插件为pytest提供了强大的扩展功能,帮助你提升测试的效率、可读性和可维护性。通过结合使用,你可以在 Python 脚本中轻松地运行这些插件,灵活地控制测试的执行、输出和结果。插件名功能简介支持并行化和分布式测试执行,提升测试效率。自动重试失败的测试,用于偶发故障。pytest-cov生成代码覆盖率报告,检查测试覆盖率。提供模拟(mock)功能,方便控制被测试对象的行为。提供对 Django 项目的支持,简化 Django 测试的执行。生成 HTML 格式的测试报告。美化pytest。
2025-01-09 20:22:46
998
原创 unittest VS pytest
unittest适用于需要兼容旧系统或与其他语言的测试框架(如 Java)的场景,或者偏好面向对象的开发方式。pytest更适合现代 Python 项目,提供更简洁的语法和强大的功能,尤其在自动化测试、调试和参数化测试方面更具优势。
2025-01-09 19:57:44
569
原创 Python 魔术方法(Magic Methods)
魔术方法的命名通常遵循“”的形式,例如__init____str____add__等。# 创建对象并打印print(p) # 输出:Alice, 30 years old__init__用于初始化对象。__str__用于定义对象的字符串表示。print(my_list[1]) # 输出:2print(my_list[1]) # 输出:10print(my_list.data) # 输出:[1, 3]和 __delitem__分别用来支持索引访问、赋值和删除。
2025-01-09 13:50:53
289
原创 使用 Flask 搭建 Mock Server
我们还可以自定义异常,例如,当请求参数缺失时返回一个 400 错误。通过 Flask 搭建 Mock Server 是一个非常简单和高效的方法,尤其在前端开发或接口测试过程中非常有用。Flask 提供了简洁的 API 来快速实现各种 HTTP 请求的模拟。GET 请求:模拟获取资源的请求。POST 请求:模拟提交数据的请求。异常处理:可以通过 Flask 的错误处理机制模拟异常场景。延迟响应:可以模拟接口响应的延迟。
2025-01-09 13:44:04
1273
原创 pyautogui
功能 方法 描述 示例代码 鼠标操作 moveTo(x, y, duration=0) 将鼠标移动到指定坐标 (x, y),duration 是移动的持续时间(秒)。 pyautogui.moveTo(100, 200, duration=1) # 将鼠标移动到 (100, 200),持续 1 秒 move(x, y) 相对当前鼠标位置移动。 pyautogui.move(50, 50) # 从当前位置向右下角移动 50 像素
2025-01-08 20:05:23
342
原创 iframe 和窗口切换
iframe切换:通过可以切换到特定的iframe,并通过切换回主页面。窗口切换:通过获取所有窗口的句柄,通过切换到指定窗口。
2025-01-08 19:45:35
434
原创 pytest 截图功能
在pytest中,将截图功能放在中实现并将截图添加到测试报告中是一种常见的做法。这样可以确保在任何测试失败时自动执行截图操作,同时将截图信息添加到测试报告中,以便于后续查看和分析。以下是详细步骤和代码示例,说明如何在中实现截图功能,并将截图添加到测试报告中。
2025-01-08 19:28:28
697
原创 *args **kwargs
args:用于接收可变数量的位置参数,打包成一个元组。**kwargs:用于接收可变数量的关键字参数,打包成一个字典。同时使用*args和**kwargs:可以同时处理位置参数和关键字参数,增强函数的灵活性。
2025-01-08 19:06:02
412
原创 pytest 参数介绍
显示详细信息: / pytest -v 输出示例: test_add.py::test_addition PASSEDtest_add.py::test_subtraction FAILED 禁用输出捕获: / pytest -s 输出示例: Test started<stdout>: Some debug information 按测试名称过滤:pytest -k "add" 说明: 运行名称中包含
2025-01-08 18:38:57
920
原创 XPath语法详解及案例讲解
/div[@class='content']/descendant::p[text()='文章正文']//input[@type='text' and @placeholder='请输入用户名']//a[contains(text(), '更多')]:定位文本中包含“更多”的链接。中,包含文本“文章正文”的。:定位一个输入框,要求。表格的第2行、第3列。
2025-01-07 14:04:25
998
原创 Pytest 接口关联
在接口自动化测试中,接口之间通常存在关联关系,比如前一个接口返回的数据需要传递给后续接口使用。以下是 Pytest 中实现接口关联的方法和详细讲解。通过 Pytest 的 Fixture 动态传递数据,避免全局变量的污染问题。接口关联指的是一个接口的输出作为另一个接口的输入。通过上下文类集中管理接口之间的关联数据,适合复杂项目。直接使用全局变量存储接口返回值,供其他接口使用。# 提取 token 并存储在全局变量中。通过参数化结合接口调用动态传递数据。# 存储 token。# 存储 token。
2025-01-06 22:15:28
939
原创 Pytest 变量渲染
简单来说,变量渲染就是动态给测试用例输入一些数据,而不是让你每次都手动去改写测试代码。比如,你想测试登录功能,可以一次性测试多个用户名和密码组合,而不用写很多重复代码。你可以让它动态生成数据,而不用每次都写死数据。Pytest 会自动运行三次,分别带入 (1, 2),(2, 4),(3, 6)。有些时候,你的数据放在配置文件里,比如用户名、密码这些,你想动态加载进来测试。装饰器,它能帮你批量输入变量,运行一遍代码,测试所有数据。如果你的测试需要生成复杂的 JSON 数据,,不用你每次写死数据了。
2025-01-06 21:43:51
1595
原创 Token、Session、Cookie
以上是 Token、Session、Cookie 的使用场景及案例分析,希望能帮助理解它们的特点和实际应用。鉴权是确保用户身份合法性和访问权限的重要手段。三种鉴权方式的原理、使用场景和区别,并结合案例说明。,因其无状态,支持跨平台和分布式部署。,因其对安全性要求高,且用户量有限。,通过浏览器自动管理用户会话。
2025-01-06 16:29:05
538
原创 pytest日志显示
log_file_format = %(asctime)s - %(levelname)s - %(message)s # 文件日志格式。log_cli_format = %(asctime)s - %(levelname)s - %(message)s # 日志格式。log_file_date_format = %Y-%m-%d %H:%M:%S # 文件日期格式。log_cli_date_format = %Y-%m-%d %H:%M:%S # 日期格式。文件设置全局日志配置,省去手动编写。
2025-01-06 16:21:30
810
原创 Allure 集成 pytest
allure.attach("<h1>这是一个HTML附件</h1>", name="HTML信息", attachment_type=allure.attachment_type.HTML)@allure.attach("这是一个文本附件", name="文本信息", attachment_type=allure.attachment_type.TEXT)Allure 是一个强大的测试报告工具,与 pytest 集成可以生成详细的测试报告,包括测试步骤、测试数据、截图、错误堆栈等。
2025-01-06 16:05:27
1297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人