企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> 如有转载,请注明来源与`testerhome.com` 昨天我们用selenium自动化的方式,获得了har文件,今天我们找一个普通,不懂代码的业务测试也能录制case的方式 ## 原理 原理是用`browsermob-proxy`可执行文件作为本地代理,监听某个端口,然后在系统中设置web服务器的代理url,让每一次的web请求都先走我们本地的代理,这样数据会先在代理服务器上保存数据,我们通过RESTAPI获得这些har数据保存到本地 ## 步骤 ### 启动代理服务 上一篇[文章](http://blog.csdn.net/itfootball/article/details/50517659)的结尾,我讲解了如何安装启动`browsermob-proxy`服务器,默认你已经看过那篇文章了,现在我们启动该服务,命令为`sh browsermob-proxy -port 9090`,启动后 ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb0ff21a4.jpg "") 如果是上图,信息表明我们的服务已经启动了,记住我们启动的端口,后续会用到。 ### 创建代理 代理服务启动后,代理的实例还没有创建成功,需要我们自己创建一个,创建方式是通过`REST api`的方式,命令为`curl -X POST -d 'port=9099' http://localhost:9090/proxy`,其中红框标注的为我们刚才启动代理服务的端口号,参数`-d`后面的`9099`是我们代理的端口号,这个一定要理解清楚,命令执行成功后出返回一个`json`字符串,里面包含了`port`字段就是你设置的代理端口号。 ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb11de175.jpg "") 创建成功后,在服务器端会输出如下信息: ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb120be66.jpg "") ### 设置系统代理 用`Chrome`浏览器打开[代理设置](http://jingyan.baidu.com/article/15622f2474b91cfdfcbea501.html),我用的是`mac`,会弹出代理设置 ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb124f43e.jpg "") 将`web`的两项设置全部进行如下更改,里面的信息要安装服务器显示的`host`和端口号来填。 - Web代理[HTTP] ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb1282882.jpg "") - 安全Web代理(HTTPS) ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb12ed5a7.jpg "") 设置完成后记得保存,如果你不想设置系统代理,看另外一种插件式的代理 ### 浏览器插件设置代理 `SwitchySharp`插件,添加到`chrome`后,进行配置 ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb1344368.jpg "") 这样我们勾选后,就能让浏览器走代理了 ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb1483c25.jpg "") 现在我们在浏览器上访问的时候,会发现服务器是有反应的。 建议使用浏览器插件的方式设置代理,这样不影响其他的上网需求。 ### 创建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`的信息: ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb14b3363.jpg "") 如果你觉得看的不太清楚,你可以通过保存到本地文件: ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb1732460.jpg "") 这样我们可以在har查看工具中查看该文件的信息: ![这里写图片描述](https://box.kancloud.cn/2016-02-23_56cbdb1752659.jpg "") ## SSL 对于`https`的请求,需要自己安装`ssl`证书。