1.已有一個登錄的HTTP請求-登錄2
2.啓動,查看結果樹
計劃提取請求頭 Connection 的 keep-alive 字段
響應主體:userId 的9786字段
以及響應碼 200
3.正則表達式提取器,提取Connection
正則表達式提取器,提取userId
邊界提取器,提取響應代碼
4.添加beanshell後置處理程序,寫入腳本
FileWriter fstream = new FileWriter("E://jmeter//pk1.csv", true);
BufferedWriter out = new BufferedWriter(fstream);
out.write( vars.get("Connection")+","+"userId" + "," + vars.get("userId") +","+"code" + "," + vars.get("returnCode")+",");
out.write( vars.get("name"));
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();
其中:
① System.getProperty("line.separator")
這也是換行符,功能和"\n"是一致的,但是此種寫法屏蔽了 Windows和Linux的區別 ,更保險一些.
https://blog.csdn.net/zhpengfei0915/article/details/20614639
out.write("code" + "," + vars.get("returnCode")+"\n");
+"\n" :也是換行的效果
② "," 體現在csv文檔中就是向右移一個單元格
5.啓動請求
在目標路徑產生文檔,打開文檔,存在提取的字段
(若已存在文檔,該代碼是可以續寫文檔的,不會覆蓋之前的記錄)
6.可在線程組設置線程數。(即http請求運行幾次)
7.遇到的問題:
① 數據一直寫入失敗,結果是【要檢查的響應字段】選錯了,像提取響應碼 【200】應該選 信息頭
寫入失敗會導致文件被佔用的情況(文件無法刪除)
② 這邊的username參數,是由csv文件傳參的 Jmeter小試牛刀-參數化
要在代碼裏獲取,應獲取name,而不是username
③ "userId": 9786 後有換行符,空格,} 等等
用邊界提取器提取,右邊界直接輸 }
結果會導致提取值自帶了換行,導致後一個值換行顯示
之後又嘗試右邊界輸入 \n 等,結果取不到值。。
用正則愉快的取到值了
(雖然邊界提取器適合小白,但正則還是要會一點。。兩個都有其佔優勢的使用場景)
參考教程: https://blog.csdn.net/nielinqi520/article/details/80310806