产品上回归测试要用,领导安排去尝试了解下,最近项目也不忙,就开始吧,csdn上的博客diffy的大同小异,基本上就是一个,参考稍微有点价值,但实际自己用的过程中,还需要研究下,目前diffy版本比对结果暂时比较可观,整理下,便于参考。
一开始走的路子是从官网下载,然后从window上编译,都编译出错,没办法,改到linux编译。
git clone https://github.com/opendiffy/diffy.git---linux下直接运行,没有git的话,先安装git,sudo yum install git
下载完成后,进入diffy里面就,执行./sbt assembly进行编译
然后你会发现这个过程很慢 ,另,需要保证剩余内存>2G,才可以保证整个编译过程,在编译的过程中,去查看
vim ~/.sbt/repositories文件是否生成,修改里面的[repositories],添加如下内容:
[repositories]
local
my-maven-repo: http://maven.aliyun.com/nexus/content/groups/public/
central: http://repo1.maven.org/maven2/
可以有效的进行提速,然后修改vim ./sbt,添加
-Dsbt.override.build.repos=true
修改完成后,编译过程会加快
编译完成后,显示以下界面
网上只说了要发请求,准备待测版本和稳定版本之类的,这里要详细说下,编译完成的jar包在以下目录下。
我这边是web端的产品,平常端口是28080,如果要进行测试,是通过对jar包所在机器进行发送请求,然后jar包所在的机器去把收到的请求转发给版本1,和版本2。也就是说,要先运行,将产品的地址先放上。
java -jar diffy-server.jar -candidate=10.6.6.68:28080 -master.primary=10.6.6.115:28080 -master.secondary=10.6.6.115:28080 -service.protocol=http -serviceName=My-Service -proxy.port=:8880 -admin.port=:8881 -http.port=:8888 -rootUrl='localhost:8888' -summary.email="guanyy@163.com" -allowHttpSideEffects=true
java -jar diffy-server.jar----jar包路径进行运行
-candidate=10.6.6.68:28080 ---要测试的版本,待部署上线的版本
-master.primary=10.6.6.115:28080--已经部署的版本,稳定的版本
-master.secondary=10.6.6.115:28080--已经部署的版本,稳定的版本,这里暂且相同
service.protocol=http---协议http,还有其它的协议
-serviceName=My-Service--服务名称
-proxy.port=:8880--后台输入请求的时候,需要往这个端口上发送
-http.port=:8888 -rootUrl='localhost:8888'---这个是jar包运行时,前端的访问地址,界面
-allowHttpSideEffects=true--用来接收除了读以外的其它请求
summary.email="guanyy@163.com"---邮箱
然后需新开一个窗口,进行请求的发送,我这边用了curl,在使用之前,需要去产品中,找到这个请求地址:
开始准备发送请求,如果不知道怎么写,可以直接,右键进行查看,然后删减一部分即可,此处的调试办法,可以直接进行请求访问,如果访问结果,跟前端的一致,就是说明写对了。
此时,可以进行服务的发送了,这里还出现了小插曲,因为产品的请求,可见的时cookie,但使用这个的话,每个版本的不一样,导致只能看到一个产品 的返回结果,另一个时登录那里就卡住了,如下图。这个时候,需要看下有没用用户不可见的,通用的使用,比如token,可以问下设计,然后找个共有的,一般数据库里面有备用的。
然后去访问,8888端口,上图中的请求是通过jar包所在机器,进行请求转发的。
在这个界面,去点击上角的,扩展,就能打开看两个版本的实际的返回结果了。
点开去噪以后,就可以看到返回结果了。
进行一次返回结果不一致的请求,当然,执行这种返回结果比对,需要保证两版本数据数量大小一致,才可以进行。
打开去噪后,可以看到失败的百分比
如果想清空当前界面的请求,需要进入设置界面,进行清空,界面的请求就会重新记录
如需要diffy-server.jar,请访问百度云下载,链接如下
链接:https://pan.baidu.com/s/1rdjRMZcuNJw-w9Se5hL8LQ
提取码:bnb1
暂时理解的是这样,有错误的地方,请指正。