Diffy 开源项目教程

Diffy 开源项目教程

diffyFind potential bugs in your services with Diffy项目地址:https://gitcode.com/gh_mirrors/di/diffy

项目介绍

Diffy 是一个由 Twitter 开发的开源项目,用于自动发现潜在的软件缺陷。它通过将新代码和旧代码并行运行,并比较它们的响应,来检测可能的回归问题。Diffy 作为一个代理,将接收到的请求多播到每个运行的实例,然后比较响应并报告任何可能出现的回归问题。

项目快速启动

环境准备

在开始之前,确保你的环境已经安装了以下软件:

  • Java 8
  • SBT (Scala Build Tool)

编译和部署

  1. 克隆项目仓库

    git clone https://github.com/twitter-archive/diffy.git
    cd diffy
    
  2. 编译项目

    sbt assembly
    
  3. 启动 Diffy

    java -jar diffy-server.jar \
    -candidate='127.0.0.1:80' \
    -master.primary='127.0.0.1:81' \
    -master.secondary='127.0.0.1:82' \
    -service.protocol='http' \
    -serviceName='My Diffy Service' \
    -proxy.port=:8880 \
    -admin.port=:8881 \
    -http.port=:8888 \
    -allowHttpSideEffects=true \
    -excludeHttpHeadersComparison=false
    

应用案例和最佳实践

应用案例

假设你有一个基于 Django 的 REST API 服务,并且你希望在不编写额外测试代码的情况下,使用 Diffy 来检测新版本和旧版本之间的差异。你可以按照以下步骤操作:

  1. 部署稳定版本

    python manage.py runserver 81
    
  2. 部署稳定版本副本

    python manage.py runserver 82
    
  3. 部署候选版本

    python manage.py runserver 80
    
  4. 启动 Diffy

    java -jar diffy-server.jar \
    -candidate='127.0.0.1:80' \
    -master.primary='127.0.0.1:81' \
    -master.secondary='127.0.0.1:82' \
    -service.protocol='http' \
    -serviceName='My Diffy Service' \
    -proxy.port=:8880 \
    -admin.port=:8881 \
    -http.port=:8888 \
    -allowHttpSideEffects=true \
    -excludeHttpHeadersComparison=false
    
  5. 发送请求并查看结果

    http http://127.0.0.1:8880/api/
    

最佳实践

  • 使用 Charles 或类似工具记录线上请求,然后通过 Rewrite 功能将请求重定向到 Diffy 的代理服务器地址。
  • 忽略非关键差异,如请求头部的差异,可以在命令行中设置 -excludeHttpHeadersComparison=true

典型生态项目

Diffy 可以与以下项目结合使用,以增强其功能:

  • Goreplay: 用于捕获和重放线上流量,可以与 Diffy 结合使用,进行更全面的测试。
  • Postman: 用于手动发送请求,可以与 Diffy 结合使用,进行手动测试和验证。
  • Django: 用于构建 REST API 服务,可以与 Diffy 结合使用,进行 API 的回归测试。

通过这些生态项目的结合使用,可以更全面地利用 Diffy 进行软件质量保证。

diffyFind potential bugs in your services with Diffy项目地址:https://gitcode.com/gh_mirrors/di/diffy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈宝彤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值