目录

接口差异测试Diffy工具

接口差异测试——Diffy工具

一、Diffy工作原理

[测试利器 | 一款开源的Diffy自动化测试框架:超详细实战教程讲解_狂师vs的博客-CSDN博客

https://i-blog.csdnimg.cn/blog_migrate/27812982629cca34770ca5338c8019c0.png “测试利器 | 一款开源的Diffy自动化测试框架:超详细实战教程讲解_狂师vs的博客-CSDN博客”)

二、Diffy使用

  1. 克隆源码:

    git clone https://github.com/twitter/diffy.git

    https://i-blog.csdnimg.cn/blog_migrate/85461d88fc4f7136a617b2a0268b5aae.png

  2. 构建diffy-server.jar,依次执行以下两条命令

    cd diffy
    
    ./sbt assembly
  3. 启动diffy服务

    1. http接口启动diffy命令

      java -jar diffy-server.jar -candidate=localhost:8080 -master.primary=localhost:8081 -master.secondary=localhost:8082 -service.protocol=http
      -serviceName=My-Service -proxy.port=:8880 -admin.port=:8881 -http.port=:8888 -rootUrl='localhost:8888'
    2. https接口启动diffy命令(亲测可用,搞了很久)

      java -jar diffy-server.jar -candidate=www.baidu.test -master.primary=www.baidu.com -master.secondary=www.baidu.com -service.protocol=https -serviceName=My-Service -proxy.port=:9990 -admin.port=:9991 -http.port=:8888 -rootUrl='localhost:8888' -summary.email='123456@qq.com' -summary.delay="5" -allowHttpSideEffects=true -excludeHttpHeadersComparison='true'
    3. 参数说明

      参数说明
      -candidate=www.baidu.test待上线版本的ip 或域名 。 假如百度测试环境的host为www.baidu.test
      -master.primary=www.baidu.com已上线版本的ip1或域名1
      -master.secondary=www.baidu.com已上线版本的ip2或域名2
      -service.protocol=httpshttp协议或https协议
      -serviceName=My-Service服务名称。任意写
      -proxy.port=:9990代理端口。所有请求应从这个端口访问。如:curl localhost:9990/search/1
      -admin.port=:9991
      -http.port=:8888diffy报告端口。localhost:8888
      -rootUrl=‘localhost:8888’同上
      -summary.email=‘ ’报告邮件收件地址
      -summary.delay=“5”
      -allowHttpSideEffects=truediffy考虑到安全性,post、put、delete请求默认忽略。设置为true可使这些类型请求仍能正常代理发送
      -excludeHttpHeadersComparison=‘true’是否排除header的差异。一般设置为true。不同服务的header有所差别,可忽略
    4. 踩坑说明!! !

      1. responseMode=primary:有一些文章里写到参数包含responseMode,但是执行时会报错:。报错信息里提示并没有该参数,去掉这一项就不会报错。
      2. excludeHttpHeadersComparison=false:此参数执行时报错:。解决方法:给false加上双引号,即excludeHttpHeadersComparison=“false”
  4. diffy报告

    1. ,浏览器访问该地址,即可查看diffy报告。
    2. 报告示例