(七)關聯和斷言

一.關聯

  • 哪些數據需要關聯

    • 數據是由服務器端生成的
    • 數據在每一次請求時都是動態變化的
    • 數據在後續的請求中需要再發送出去
      在這裏插入圖片描述
  • 舉個栗子, 常見的 Session ID 就是一個典型的需要關聯的數據。它需要在交互過程中標識一個客戶端身份,這個身份要在後續的交互中一直存在,否則服務端就不認識這個客戶端了。Spring Boot 中有一個 spring-boot-starter-security,默認會提供一個基於 HTTP Basic 認證的安全防護策略。它在登錄時會產生一個 CSRF(Cross-Site Request Forgery)值,這個值典型地處於動態變化中。

    • 可以看到登錄信息返回csrf,沒有使用這個值的接口將會沒有權限訪問。
      在這裏插入圖片描述
    • 首先添加 Cookies Manage。JMeter 在處理 CSRF 時,需要添加一個 Cookies manager。如下:
      在這裏插入圖片描述
    • 這裏的 Cookie Policy 一定要選擇 compatibility,以兼容不同的 cookie 策略。
    • 取動態值,在返回 CSRF 值的地方加一個正則表達式提取器來做關聯。
      在這裏插入圖片描述
    • 這裏的,就是要取出這個動態的變化值,保存到變量 csrfNumber 中去。
    • 然後, 將發送時的 CSRF 值替換成變量,就可以正常訪問其它接口了。
      在這裏插入圖片描述
  • jmeter有多種提取器,使用什麼樣的提取器取決於業務的需要。

二.斷言

  • 斷言就是判斷服務端的返回是不是正確的,判斷邏輯如下:
    在這裏插入圖片描述
    • 舉個栗子,登錄接口:
      在這裏插入圖片描述
    • 執行結果:
      在這裏插入圖片描述
    • 添加斷言:
      在這裏插入圖片描述

總結

  • 關聯和斷言的前半部分是一樣的,都是從服務器返回信息中取出數據。但不同的是,關聯取來的數據每次都會不同;而斷言取出來的數據基本上都是一樣的,除非出了錯。

  • 對服務端生成的,並且每次生成都不一樣的動態變化的數據,那麼將其取回來之後,在後續的請求中使用,這種邏輯就是關聯。

  • 對服務端返回的,可標識業務成功與否的數據,將其取回來之後,做判斷。這種邏輯就是斷言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章