如有转载,请注明来源与
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
证书。