實際性能測試過程中,有些需錄制腳本的頁面或接口是基於https協議的,按原來方法錄制腳本,錄完了腳本是空的。為解決這個問題,第一步了解https協議的具體實現,這塊網上資料很多,可參考頁面下方參考資料中鏈接;第二步實踐。
如下為具體操作步驟如下:
1. 獲取證書
1.1 通過ie瀏覽器訪問https:
1.1.1 點擊右上角黃色的鎖或者在工具選項查找安全證書,選詳細信息標簽后,把安全證書復制到文件;
1.1.2 按照對話框中提示信息,輸入要保存的名稱保存到所選路徑下!具體如圖:

圖1.保存安全證書
1.2 用openssl實現私鑰和證書的格式轉換
LR的安裝目錄下,包含OpenSSL的工具。路徑如下:... HP\LoadRunner\bin
CER/DER--PEM(編碼DER--BASE64)
x509 -inform der -in C:\Users\nan\Documents\baidu.cer -out certificate.pem

圖3.執行openssl命令
2. LoadRunner Recording Option 設置
2.1 Network:Port Mapping設置
options->netword下的port mapping,設置為winnet level data,或者Socket level and WinNet level Data
2.2 Network:Port Mapping中增加一個Server Entry
LoadRunner,選擇:Web (HTTP/HTML)協議錄制,添加url,打開option選項在NetWork選項中新添加一個Entry如下圖:

圖2.Server Entry 設置
注釋1:如需指定某台服務器,可以在Target Server中輸入ip,否則可以為默認值Any Server; 注釋2:SSL verison 里面包括ssl協議的 以及TLS協議,一般情況下默認; 注釋3:Use specified client-side dertificate (64-PEM)選擇下載好的客戶端證書,LoadRunner目前支持crt、pem,設置完成后點update; 注釋4:Password用於設置安全證書的密碼。
2.3 使用IE瀏覽器進行錄制
將winlnetreplay instead of scokets(windows noly) 打勾(設置這一項則數字證書在瀏覽器中獲取);如果參數化數字證書,則此項不用打勾。默認情況下我們的腳本是通過sockets端口方式進行回放的,某些情況下這種回放會被服務器拒絕,這時可以換用winlnet的引擎來回放腳本。
Ie瀏覽器也是基於winlnet引擎的,所以兼容性比較好一點,其他瀏覽器可能是socket。
2.4 回放腳本時報錯
問題:主要報錯是ssl隧道的問題:SSL protocol error
解決方法:需要設置Run-Time settings -> Preferences -> Advanced , 勾選上 WinInet replay instead of Sockets (Windows only) 。
3、 錄制時存在的問題解決
在錄制初始,彈出第一個問題“Internet Explorer cannot display the webpage”類似,這主要是因為支持長度不對,具體原理不再描述只說解決方案
問題解決如下(Windows 7):執行:cmd
然后執行命令:certutil -setreg chain\minRSAPubKeyBitLength 512重啟電腦,問題解決
-------------------------------其他問題------------------------------
1. 如何錄制雙向SSL腳本?
由於LR的機制是利用LR模擬瀏覽器與服務器進行交互,所以證書需要安裝在IE瀏覽器里。
2. 參考資料
https原理:證書傳遞、驗證和數據加密、解密過程解析 - http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html
