在測試https請求的時候發現無法通過,並且報錯
Action.c(31): Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "xxxxxxxx" failed: [10054] Connection reset by peer [MsgId: MERR-27780]
如圖:
Loadrunner默認發送是通過sockets(將http轉換為sockets)發送的,而sockets默認SSL的版本為SSL2和SSL3。HTTPS協議錄制的腳本以SSL3版本回放時會使sockets端口連接失敗,會被服務器拒絕連接。
方法一:設置Run-time Setting
找到Internet Protocol - Preferences - Advanced,勾選“winlnet replay instead of sockets(windows only)”選項,即可。
如圖:
勾選這個選項后,LR就會使用winlnet的引擎回放腳本(只有windows使用)。設置這一項則數字證書在瀏覽器中獲取;如果參數化數字證書,則此項不用打勾。
方法二:缺少https證書
解決方案:
1. 得到web網頁的.cer證書
2. 借助openssl轉換證書的格式為perm
3. loadrunner配置
======================================================
具體:
1. Google瀏覽器中先得到web網頁的.cer證書





這邊選擇的格式需要記住,后續需要轉換。
選擇要保存的路徑和文件名,完成.cer證書的導出。
2. openssl 轉換證書格式
LR只支持.perm格式的證書,需要借助openssl。
① 下載openssl
官網的openssl貌似是win32的,win64不兼容
有時間也可以自己編譯折騰一下(需要安裝Perl、VS10、openssl),可以根據以下的教程來做:
http://blog.csdn.net/houjixin/article/details/25806151
② 轉換
打開cmd,運行openssl



中間打了馬賽克的就是轉換前后證書路徑文件,一定要加上路徑。
- 路徑不對會如下報錯:



- 轉換的命令和cer文件的編譯格式有關系,如果不對,會報如下錯誤:



以下是openssl命令的格式:



3. Loadrunner設置證書






https的端口號就固定的443。



5、配置完畢后,重新錄制腳本,正常情況下,錄制的腳本前面會出現證書信息,如下所示:
web_set_certificate_ex("CertFilePath=admin149.pem", "CertFormat=PEM", "KeyFilePath=admin149.pem", "KeyFormat=PEM", "Password=123456", "CertIndex=1",
LAST);
6、若再報:GENERAL_MSG_CAT_SSL_ERROR: Connection failed to host during replay of the script
放在 web_set_certificate_ex 前面
web_set_sockets_option("SSL_VERSION","TLS");
備注:
若出現:安全警報:該站點安全證書不可用,是否繼續。
是因為該證書是開發自己弄的,並不能在信任機構中找到該證書,此時就是這個證書沒法用。那么loadrunner就不能用了