如何使用 keploy sanitize 清除测试用例中的敏感数据【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keployKeploy 录制出的测试用例keploy/test-set-id/tests/*.yaml会完整保留请求和响应中的真实数据Authorization头、API key 这类敏感值也在其中。如果要把测试用例提交到仓库或分享给团队先执行一次keploy sanitize命令它会对测试用例做秘钥扫描并把命中的值替换为占位符同时把原始值单独写到secret.yaml。本文说明该命令的运行方式、处理范围和结果验证方式。适用场景与前提已有 Keploy 录制的测试集目录结构为keploy/test-set-id/tests/*.yaml。keploy sanitize从当前工作目录解析keploy/test-set-id目录因此需要在包含keploy目录的目录下执行命令。执行 sanitize 命令只处理指定测试集keploy sanitize -t test-set-id不带-t参数时命令会处理当前目录下keploy/内的全部测试集命令输出会记录实际处理的测试集数量。-t后面替换为你自己的测试集 ID录制时生成的目录名。命令实际做了什么对每个选中的测试集流程如下实现见 pkg/service/tools/sanitize.go命令注册见 cli/sanitize.go秘钥检测使用 gitleaks 检测器扫描tests/下的每个.yaml文件检测规则为 gitleaks 内置规则加上项目内置的自定义规则。自定义规则在 custom_gitleaks_rules.toml 中编译期嵌入覆盖 AWS access/secret key、GitHub PAT 与 OAuth token、Slack 各类 token、Stripe API key、SendGrid API key、Google API key、JWT、Authorization: Bearer头、URL/JSON 参数中的长 token 等类型。值替换把命中密钥的 YAML 值替换为占位符格式为{{string .secret.Key }}。处理范围包括普通标量字段如请求头req.header下的值字符串里的 JSON先解析 JSON 再对内部字符串值做替换gRPC 用例的decoded_dataprotoscope 文本按完整 token 替换例如完整 URL 或完整 key而不只是 gitleaks 报告的小片段curl命令字符串中的-H/--header头及其中出现的密钥值。写入secret.yaml同一测试集内所有文件扫描到的原始值汇总到keploy/test-set-id/secret.yamlkey 为占位符中的Keyvalue 为原始值。结果验证检查keploy/test-set-id/secret.yaml是否生成其中应列出本次提取的占位符 Key 与原始值的映射。抽查tests/下的 yaml 文件原来的密钥值应变为{{string .secret.Key }}形式的占位符例如请求头中的 Bearer token 不再以明文出现。确认没有残留明文密钥在测试集目录内搜索你已知的 key 片段应只命中secret.yaml不应命中tests/下的文件。限制与已知行为以下行为来自 pkg/service/tools/sanitize.go 的实现执行前需要了解跳过规则如果测试集目录中已存在secret.yaml该测试集会被整体跳过日志会记录secret.yaml found in the test set directory, skipping sanitization。也就是说同一测试集不会被二次 sanitize需要重新处理时先自行移走已有的secret.yaml。错误不中断单个测试文件 sanitize 失败时会记录错误并继续处理其余文件找不到keploy/test-set-id目录时跳过该测试集。命令正常返回不代表每个文件都成功需要结合日志判断。Key 命名规则占位符 Key 由测试名和字段名/规则 ID 生成同一测试集内相同值复用同一个 Key同一 Key 下出现不同值时按_2、_3后缀区分。已经是{{string .secret.占位符的内容不会被再次记录进secret.yaml。完成验证后tests/下的文件即可用于分享或提交secret.yaml保存了还原所需的全部原始值。【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考