内部工具

测试用例生成

上传需求文档或原型目录,自动生成测试用例 JSON 和 XMind。

进入工具

MySQL慢查询导致接口超时的一次复盘

发表评论 2086 浏览量

MySQL慢查询导致接口超时的一次复盘

2022年10月记录,分类「服务器运维」。这篇按当时的测试现场整理,重点放在目标、动作和可复用的检查点。

故障表现

这次接口超时一开始被怀疑是应用线程池不够,后来从慢日志看到某个列表查询扫描了几十万行。问题不复杂,但定位顺序很典型。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

定位过程

  • 先拿接口参数复现慢请求,记录响应时间和 traceId。
  • 在数据库里找对应 SQL,执行 EXPLAIN 看扫描行数。
  • 加索引后用同一批数据回归,确认 p95 和慢日志都下降。
EXPLAIN SELECT * FROM orders WHERE use

阅读全文

Docker网络排查:容器互通、端口映射和DNS

发表评论 2218 浏览量

Docker网络排查:容器互通、端口映射和DNS

2022年9月记录,分类「Docker」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。

现象

容器网络问题经常表现成接口超时或数据库连不上。那次我遇到的是容器内能 ping 通 IP,但服务名解析失败,最后定位到 compose 网络和容器重建顺序不一致。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

网络层怎么查

  • 先在容器内 curl 服务名和端口,确认是不是 DNS 或端口问题。
  • 用 docker network inspect 看容器是否在同一个网络。
  • 把宿主机端口映射和容器内部端口分开记录。
d

阅读全文

Selenium Page Object别写成另一种面条代码

发表评论 1916 浏览量

Selenium Page Object别写成另一种面条代码

2022年8月记录,分类「自动化测试」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

问题不是分层

Page Object 很容易被写成另一种面条代码:所有元素和所有动作都塞进一个类,最后比裸 Selenium 还难读。我后来更关注页面对象到底有没有表达业务动作。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

页面对象怎么写

  • 页面类只暴露用户能理解的动作,比如登录、提交、筛选。
  • 定位器集中管理,但断言尽量放在用例或业务层。
  • 重复弹窗、表格、上传组件单独拆组件对象。
class OrderPa

阅读全文

Linux日志定位:从grep到journalctl

发表评论 2065 浏览量

Linux日志定位:从grep到journalctl

2022年7月记录,分类「Linux」。内容按测试执行视角整理,尽量把背景、操作和验收口径讲清楚。

先看现象

服务器问题不能靠感觉猜。这篇是我整理的一套基础排障顺序,适合页面打不开、接口超时、服务重启失败这类场景。

整理时我特意把输入、动作、观察点和风险拆开,方便后面补用例。

排查顺序

  • 先确认时间点、影响范围和是否所有接口都失败。
  • 再看端口、进程、磁盘、内存,排除基础资源问题。
  • 最后按 Nginx、uWSGI、Django、MySQL 的链路往下追。
ss -lntp
df -h
free -m
journalctl -u ngin

阅读全文

JMeter参数化、断言和关联的三件小事

发表评论 2119 浏览量

JMeter参数化、断言和关联的三件小事

2022年6月记录,分类「JMeter」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

压测前先确认

这篇不是讲 JMeter 菜单怎么点,而是整理三个最影响压测可信度的小问题:参数化、断言和关联。任何一个没处理好,TPS 都可能是假的。

我当时想确认的不是工具能不能跑,而是这个点能不能稳定地变成测试资产。

三个关键动作

  • CSV 参数要覆盖真实业务分布,不要 100 个线程抢同一个账号。
  • 登录 token、订单号、流水号必须从响应里关联出来。
  • 断言不能只看 200,要校验业务码和关键字段。
线程数: 50 -> 100 ->

阅读全文

Docker Compose快速拉起一套测试环境

发表评论 2115 浏览量

Docker Compose快速拉起一套测试环境

2022年5月记录,分类「Docker」。这篇按当时的测试现场整理,重点放在目标、动作和可复用的检查点。

要解决的问题

这篇记录的是把 Django、MySQL、Nginx、Redis 这类依赖拉到一份 compose 里的过程。目标不是追求生产级复杂度,而是让测试环境能快速重建。

对测试来说,最后要落到可复现、可验证、可交接,文章也是按这个思路写的。

compose里固定什么

  • 镜像版本写死,避免今天拉到的版本和上周不一样。
  • 数据库、缓存、上传目录都挂 volume,重启容器不丢数据。
  • 服务启动后先跑健康检查,再跑接口冒烟。
docke

阅读全文

Postman环境变量和前置脚本的实战整理

发表评论 2211 浏览量

Postman环境变量和前置脚本的实战整理

2022年4月记录,分类「postman」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。

变量怎么分

Postman 很适合联调,但变量乱了也很容易把人带坑里。我整理这篇,是为了让集合可以在本地、测试环境、预发环境之间稳定切换。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

前置脚本做什么

  • 环境变量只放 host、账号、租户这类会随环境变化的值。
  • collection 变量放 token、业务 id 这类运行过程中产生的值。
  • 前置脚本只做签名、时间戳、公共 header,不写复杂业务流程。
pm.environment.s

阅读全文

pytest fixture分层设计:登录、数据和环境隔离

发表评论 2312 浏览量

pytest fixture分层设计:登录、数据和环境隔离

2022年3月记录,分类「pytest」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

拆分原则

fixture 写不好,自动化会越来越像一团共享状态。这篇记录的是我把登录、造数、清理和环境配置拆开后的做法,重点是让单条用例可以独立运行。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

层级设计

  • session 级只放环境配置和公共 client,不放业务数据。
  • function 级 fixture 负责创建订单、用户、审批单这类会被修改的数据。
  • yield 后清理失败也要记录,不要静默吞掉。
@py

阅读全文

requests封装接口客户端:从脚本到小框架

发表评论 2221 浏览量

requests封装接口客户端:从脚本到小框架

2022年2月记录,分类「接口测试」。内容按测试执行视角整理,尽量把背景、操作和验收口径讲清楚。

为什么要封装

最开始我写接口脚本就是 requests.get/post 到处飞,能跑,但维护很痛。接口多了以后,鉴权、超时、日志、重试、断言都重复,所以我把它收敛成一个小客户端。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

封装边界

  • session 里统一处理 base_url、headers、token 和超时。
  • 请求前后记录 method、url、参数、耗时、traceId,失败时输出完整上下文。
  • 业务接口再

阅读全文

Git分支回滚和测试提测流

发表评论 2192 浏览量

Git分支回滚和测试提测流

2022年1月记录,分类「Git」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

问题现场

这篇是一次提测混乱后的整理。那次多个需求共用测试环境,分支被来回合并,最后谁的代码进了环境都说不清,所以我把提测、验证、回滚做成了固定动作。

整理时我特意把输入、动作、观察点和风险拆开,方便后面补用例。

分支约定

  • 提测单必须写明 commit、配置变更、数据库脚本和影响模块。
  • 测试环境只接受 release 或 feature 分支,不直接从个人分支部署。
  • 回滚不是只回代码,还要检查配置、缓存、定时任务和数据库兼容。
git log --oneline --

阅读全文