> 如有轉載,請注明來源與`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`,啟動后

如果是上圖,信息表明我們的服務已經啟動了,記住我們啟動的端口,后續會用到。
### 創建代理
代理服務啟動后,代理的實例還沒有創建成功,需要我們自己創建一個,創建方式是通過`REST api`的方式,命令為`curl -X POST -d 'port=9099' http://localhost:9090/proxy`,其中紅框標注的為我們剛才啟動代理服務的端口號,參數`-d`后面的`9099`是我們代理的端口號,這個一定要理解清楚,命令執行成功后出返回一個`json`字符串,里面包含了`port`字段就是你設置的代理端口號。

創建成功后,在服務器端會輸出如下信息:

### 設置系統代理
用`Chrome`瀏覽器打開[代理設置](http://jingyan.baidu.com/article/15622f2474b91cfdfcbea501.html),我用的是`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`證書。