高频面试题解析:jmeter 面试题剖析实战
最近有個分析反饋,自己在面試的時候,遇到一個 jmeter 題目,要我幫忙看下,題目如下:
進入http://www.weather.com.cn/網站,用jmeter編寫腳本實現如下操作(下列要求在同一個測試腳本) : (1)編寫獲取北京天氣紫外線、穿衣、洗車、感冒指數的壓測腳本,要求將城市參數化10個(城市名字自定義),將城 市的當前實時天氣>10度作為斷言,并將天氣數字輸出打印到日志, 設置200用戶并發持續運行3天(2)編寫獲取周邊景點的腳本,并景點返回的個數作為斷言,并將各景點名字輸出打印到日志, 設置200用戶并發持續運行10分鐘第一個題目
粗看,其實沒有什么難度,但是當你去訪問了這個網站,然后看到網站數據結構時,才知道并不是那么簡單。
當你去訪問這個網站的時候,你會發現,這個網站并沒有直接提供接口。
沒有提供接口,哪怎么做呢?
抓包!是個不錯的選擇,所以,這個題目,首先考察的是:
你是否懂得用抓包工具住包??
通過抓包,你會看到有一個類似這樣:
http://d1.weather.com.cn/weather_index/101010100.html?=1595579781357 的地址,返回了我們第一問中的北京天氣信息。看到這樣一個地址,你會找出哪些信息?101010100?這個應該要想到,這個應該是城市代碼,而"="這個之后的值,應該是一個時間戳。這就在考察:你對于數據的敏感度;接下來,我們看下這個接口返回的消息體,數據類似“var cityDZ ={"weatherinfo":{xxxx};xxxxxxxxx}” 乍一看,還以為是 JSON 格式,但又不像,仔細看響應頭的 Content-Type,你又會發現是‘text/html' 文本類型。也就是說,題目中要求獲取的天氣、紫外線...... 等等信息,不能簡單一次提取,需要用到正則,所以這個又在考察:你對正則提取器的使用;題目要求獲取多個信息,一直用所有的都用正則可以嗎?可以,但是你如果所有的信息都通過正則提取器提取,那也從側面反映你技術不咋滴。因為那是干勞動力的活,其實是在隱式考察:你對正則提取器和 JSON 提取器以及多提取器一起靈活使用的能力。把一個文本內容,通過正則提取器提取出一段 JSON,然后再用 JSON 提取器提取正則式結果中想要數據,這才是他的真正的目的。然后題目又來一個難題,實時天氣大于 10 度作為斷言。是不是一下又楞了,不知道怎么搞了?提取實時天氣,這個可以提取出來,難點就在“大于 10 度”這個要怎么做呢?這又在考察:你對于斷言中大小斷言掌握情況, 首先我們要知道應該用什么斷言?響應斷言,沒有比較大小功能。比較斷言,是兩個特定的比較,也不適用。那就只有“大小斷言”這一個。題目中還有,要參數化 10 個城市,別小看這個參數化,為什么不是八個,不是九個,卻剛好十個?這其實也隱藏了一個點,這個又在考察:你對于循環控制和 foreach 控制器的使用,當然這個點,可以取巧,用用戶自定義 10 個城市,然后再用 foreach 控制器能簡單解決。題目中,還要求“將天氣數字輸出打印到日志”,因為 jmeter 本身沒有直接寫參數到日志的元件,需要用函數或 Java 代碼來實現,所以這個又在考察:你對 jmeter 函數或 Java 腳本的使用能力;至于后面的“設置 200 個用戶持續運行 3 天”這個就非常簡單了,考察:線程組進行性能場景的設置,這個可以用普通的線程組就能實現,當然,也可以使用其他的線程組。
看似一個簡單的 jmeter 題目,只要有一定的 jmeter 使用經驗,這個題目思路不復雜,但是難點在具體腳本的寫法。下面把腳本截圖,僅供參考。
- foreach 控制器
- 獲取氣溫
- 查看接口響應數據
- 提取所有指數
- 提取題目所需要的指數
- 獲取城市天氣
- 獲取城市溫度
- 獲取溫度數值
- 斷言溫度數值
- 日志顯示溫度
- 用戶自定義變量
?第二個題目
看題干,就知道比第一個要簡單,第一個題目做出來了,第二個馬上就能用上上面的技能。但是,卻埋下了一個難題,那就是獲取景點個數,作為斷言。為什么說還難點呢?仔細看過接口響應文本,就會發現,又不是簡單的 JSON。數據是:var data=({key1:{xxx}},{key2:{xxx}},{key3:{xxx}})。如果不懂得 JSON 的相對提取法,這個題目就變得異常復雜。
下面是解題截圖,僅供參考:
- 獲取周邊景點
- 查看接口響應數據
- 正則提取響應數據
- 獲取景點名稱
- 景點數量斷言
- foreach 循環
- 日志顯示景點名稱
好了,一個看似簡單的 jmeter 面試題,卻隱藏了這么多考察項,你是否都掌握了呢?
總結
以上是生活随笔為你收集整理的高频面试题解析:jmeter 面试题剖析实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lingo3d_基于官方教程的分析
- 下一篇: XMind--思维导图