第一步:須要跟開發或者運維要到要訪問的https接口的證書(有關證書的問題咱們在原理中有解釋)。web
第二步:肯定要來的證書的格式是否爲pem格式的。首先,LR只可以識別pem格式的證書並且是DER類型的pem格式的證書。其次,若是要來的證書爲非pem格式的則須要進行證書格式的轉換。(見第三步)windows
第三步:對crt格式證書進行DER類型的pem格式的證書轉化。安全
解決辦法:服務器
一、 先從ie將crt證書安裝到本機,而後再以cer格式導出證書網絡
二、 Linux系統下執行命令:openssl x509 -in 文件名稱.cer -inform der -outform pem -out 文件名稱.pem;
app
三、 若是是windows系統下須要安裝openssl,Linux系統下直接執行便可。運維
第四步:在LR下配置證書函數
解決辦法:post
一、 在Edit Recording Options(錄製設置)中配置Port Mapping測試
註釋1:這塊若是有須要指定某臺服務器能夠輸入ip,若是像咱們公司是作海外產品且服務器部署在海外且ip訪問無效的狀況下能夠選擇Any Ssever。
註釋2:端口號必須爲433,常識啊。http默認爲80,https默認爲443。
註釋3:http和https的區別就在這,原理會講在這裏能夠一套霧水照着配置哦。
註釋4:SSL Version一定選擇截圖,不要問我爲何,Tseng先生查遍官方文檔也沒找到因此然,對於哥這麼「刨根問底」的人而言很痛苦但是這麼配置確定沒錯。固然這個問題後續我會繼續研究。
註釋5:很明顯嘛,就不用解釋太多了,請選擇你轉化好的DER類型的PEM格式的證書的路徑。
註釋6:這個問題會很突出。爲啥還有密碼?密碼是爲了幹嗎?尼妹的沒有密碼怎麼辦?沒有就不填唄。有密碼就要來填上唄,反正當時我挺糾結。尼瑪還要登陸是咋滴!固然原理中仍是會介紹滴。
二、 配置完畢固然是Update難道會是Cancel麼?原諒我手欠的人才這麼幹!
三、 做爲攻城獅配置完畢是否是應該規範的檢查一遍?不然你怎麼捨得叫攻城獅呢?
PS:做爲號稱當年玩爛LR的攻城獅我汗顏的是以前居然把配置證書這步當成了錄製必備,換句話說我誤覺得用web_set_certificate_ex();寫在請求前就算完成了證書匹配的過程,坑爹啊網上的技術文章不可信啊!說話還要看語境呢!你寫這些誤導誰呀?對,都是他們的錯。呵呵~~下面附該函數的具體使用格式,反正每一個參數官方幫助寫的跟沒寫同樣,我猜都猜出來了。聲明下真正生效的是按照上面的配置方法,在這裏你就認爲我炫技吧,這個函數惟一的用處就是錄製後會出現,目前我是這麼理解的反正我也不知道對不對:
web_set_certificate_ex("CertFilePath=mobimagic.pem",
"CertFormat=PEM",
"KeyFilePath=mobimagic.pem",
"KeyFormat=PEM",
"Password=123456",
"CertIndex=1",
LAST);
官方解釋:
第五步:證書都配置完畢了,那就是寫請求唄。別告訴get和post都分不清楚。反正get和post請求就那麼幾個函數。web_link();web_url();web_submit_data();web_submit_form();一堆一堆的,我就是想炫耀知識淵博,其實跟高手比仍是個戰五渣。這裏想提醒的是,若是你的post請求寫在body裏了還特麼加密了咋整?這些請求函數都很差使,換web_custom_request();吧。
第六步:神聖的時刻,F5運行下
第七步:誒呦?你覺得這就結束了?這就was successful了?若是你運氣很差會碰到報錯。
解決辦法:
到Run-time Setting(運行設置)中將圖內的選項勾選,這個選項從網上查到的解釋是「VuGen專用的基於套接字的重播是一種可伸縮以便進行負載測試的輕型引擎。使用線程時是準確的。基於套接字的引擎不支持socks代理服務器。若是在這樣的環境中錄製,應該使用winInet重播引擎。」可是至於爲何這麼用做爲下一個課題進行研究。
第八步:此刻你會驚喜萬事大吉麼?NO!你覺得LR是有多智能?他說was successful就successful了?做爲攻城獅責任必定要到底!你固然須要到服務端查看下你發的請求的狀態碼是否是200?傳送body裏是否有內容?返回是否是正確的了?
看到了麼?windows的機器的請求,這就夠了。另外,做爲攻城獅是否是要發散下?爲了模擬正常的用戶行爲咱們是否是訪問這個接口會有N多種機器型號?腫麼辦?用web_add_header();進行參數化唄,你想要什麼header就出什麼header。
至此,實操篇結束。
題外話:以上只是真正作壓測的第一步,至於如何進行完整的壓測,怎麼設置壓力機?如何設置監控指標?設置哪些監控指標?監控目標應該是啥?如何進行場景雞舍?如何進行數據分析?不一樣的數據之間有什麼聯繫?每一個指標表明瞭什麼?等等等等,太多了,後續我會繼續寫文章,包括技術的周邊。
小注:
每次說到原理、理論都是你們特別反感的緣由是這些東西很枯燥,可是高中哲學的惟物主義辯證法中有這麼個原理和方法論就是實踐與認知的辯證關係。其中裏面說的很清楚,實踐是認識的基礎。實踐是認識的來源;實踐是認識發展的動力;實踐是檢驗認識真理性的惟一標準;實踐是認識的目的和歸宿。認識對實踐具備副作用。其實概括下就一點理論是實踐的昇華。
說到https必然要先了解到https是個什麼?他和很像的http有啥關係?那http是啥?我以爲,理論的東西大漫天且研究論證的過程很艱辛這些交給科學家就好咱們不必去了解那麼深只須要知道大致是怎麼回事怎麼應用就好。其實,簡單說來HTTP協議傳輸的數據都是未加密的,所以使用HTTP協議傳輸隱私信息很是不安全。爲了保證這些隱私數據能加密傳輸,因而網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。所以將原來的http換成了https連接。
那麼問題來了,實操中說到證書和上邊介紹的加密有啥關係呢?答案是,https屬於非對稱加密,須要公鑰和私鑰才能徹底獲得想要的數據,換句說公鑰能夠進行訪問,私鑰至關於能夠造數據,換成普通話說想要知道https怎樣加解密須要兩把鑰匙一把是公鑰一把是私鑰,這兩把鑰匙是各司其職。接下來就會有個問題,https的工做流程是如何進行的?我估計這個問題你網上一搜一大把,可是純理論不接地氣,我想說的是以往的http請求無需身份驗證就能夠直接作請求來者不拒,可是https至關於在作請求前先要進行一下身份驗證,這個驗證就須要到公鑰有的公司爲了更安全可能設置了密碼,因此大致的請求交互流程就是身份驗證經過後進行請求。從代碼流程上就要分身份驗證和請求兩塊,也就是說要將獲取到的證書先進行配置在進行驗證最後執行請求函數。固然,這裏說的簡單些,緣由是基於LR進行的腳本輸出。