接口测试-录制har文件

来源:互联网 发布:android 启动时间优化 编辑:程序博客网 时间:2024/05/29 13:16

如有转载,请注明来源与testerhome.com
昨天我们用selenium自动化的方式,获得了har文件,今天我们找一个普通,不懂代码的业务测试也能录制case的方式

原理

原理是用browsermob-proxy可执行文件作为本地代理,监听某个端口,然后在系统中设置web服务器的代理url,让每一次的web请求都先走我们本地的代理,这样数据会先在代理服务器上保存数据,我们通过RESTAPI获得这些har数据保存到本地

步骤

启动代理服务

上一篇文章的结尾,我讲解了如何安装启动browsermob-proxy服务器,默认你已经看过那篇文章了,现在我们启动该服务,命令为sh browsermob-proxy -port 9090,启动后

这里写图片描述

如果是上图,信息表明我们的服务已经启动了,记住我们启动的端口,后续会用到。

创建代理

代理服务启动后,代理的实例还没有创建成功,需要我们自己创建一个,创建方式是通过REST api的方式,命令为curl -X POST -d 'port=9099' http://localhost:9090/proxy,其中红框标注的为我们刚才启动代理服务的端口号,参数-d后面的9099是我们代理的端口号,这个一定要理解清楚,命令执行成功后出返回一个json字符串,里面包含了port字段就是你设置的代理端口号。

这里写图片描述

创建成功后,在服务器端会输出如下信息:

这里写图片描述

设置系统代理

Chrome浏览器打开代理设置,我用的是mac,会弹出代理设置

这里写图片描述

web的两项设置全部进行如下更改,里面的信息要安装服务器显示的host和端口号来填。

  • Web代理[HTTP]

这里写图片描述

  • 安全Web代理(HTTPS)

这里写图片描述

设置完成后记得保存,如果你不想设置系统代理,看另外一种插件式的代理

浏览器插件设置代理

SwitchySharp插件,添加到chrome后,进行配置

这里写图片描述

这样我们勾选后,就能让浏览器走代理了

这里写图片描述

现在我们在浏览器上访问的时候,会发现服务器是有反应的。

建议使用浏览器插件的方式设置代理,这样不影响其他的上网需求。

创建HAR进行数据记录

现在我们开启我们的代理服务器,以及开启了9099端口的代理,而且将浏览器的代理设置成这个9099端口的代理,现在我们的网络访问就会走9099这个代理了。

开启录制

命令:curl -X PUT -d 'initialPageRef=Doctorq' http://localhost:9090/proxy/9099/har上面的命令将这次录制的case页面名称定为了Doctorq,这样我这条case就可以通过Doctorq来找到,这个命令执行后,我们的录制功能已经开启了,这个时候你在网页上的请求,就会被我们的代理捕获,数据也会被保存。

获取HAR信息

命令:curl http://localhost:9090/proxy/9099/har,这个时候命令行会输出har的信息:

这里写图片描述

如果你觉得看的不太清楚,你可以通过保存到本地文件:

这里写图片描述

这样我们可以在har查看工具中查看该文件的信息:

这里写图片描述

SSL

对于https的请求,需要自己安装ssl证书。

0 0
原创粉丝点击