前言 :
因為公司需要,所以開始學jmeter了
對於寫網頁來說,如果要檢查一些Get Request 裡面的參數
或是不會寫網頁,單純只是想看看能不能用網站漏洞弄點福利的
jmeter都算是相當強大的工具
.
前言結束,反正會來查得大概也都知道jmeter 是什麼
.
目前不才的用途是錄製網頁的操作過程
以後如果相關檔案被修改到時,就可以用錄製的過程檢查有沒有被影響到
.
例如修改過交易網站後會不會讓網站無法交易
或是金額不正確等等
.
正文 :
今天教學主要是教
怎麼檢查網頁跳出來的結果是不是正確,或是預期的內容
有時候就算跳出不是預期的內容,例如交易失敗
.
測試時也是會過
因為她只會檢查網頁在不在,不會檢查裡面的內容
.
但如果我今天要檢查裡面的內容,要是正確的才會過要怎麼辦?
.
很棒的,jmeter裡面可以下腳本檢查
當然腳本語言是JAVA,因為jmeter 本身也是JAVA寫的
JAVA又剛好是直譯的語言
.
首先是在要檢查的那個步驟上
通常一個步驟
會有Get 或是 Request(傳到伺服器的參數)
然後會回傳一些東西
例如json格式或是 HTML網頁
看遠端回傳什麼
.

如果你要檢查的東西,是在某個步驟裡面
例如送出身商品編號和交易資訊等等
回傳的是不是成功字樣
.
先按下右鍵 >> 新增 >> 後置處理器(圖片上弄錯了) >> BeamShell PostProcessor
簡單來講是在這個requesr 送出去後,回傳結果才會執行的腳本
.

就會多出這個
.

然後在裡面貼上這個(範例)
response = prev.getResponseDataAsString();
boolen success=response.toString().contains("購買完成"); //撈出全部html裡面有沒有 "購買完成" 的字串
if(success)
{
print("OK");
prev.setSuccessful(true); //設定這一筆測試是成功的
}
else
{
prev.setSuccessful(false); //設定這一筆測試是錯誤的
prev.setStopTest(true);//如果想要在這個測試沒有過後就不要測試後面的,這行就留下來
}
.
簡單來說就是把伺服器裡面傳過來的東西全部存起來
.

然後撈出關鍵字
檢查有沒有相對應的字,例如購買完成等等字樣
.
如果有就讓測試通過
.
如果沒有就讓測試不要過
下面是中斷後面的測試
.
如果就算這個測試沒有過還是要測後面的
就把它註解掉吧
.

print出來的東西可以在終端機裡面看到,但不會影響測試
只是輸出給自己看的
((就是那個黑色視窗
.







