HttpRunner學習4--使用正則表達式提取數據


前言

在HttpRunner中,我們可通過extract提取數據,當響應結果為 JSON 結構,可使用 content 結合 . 運算符的方式,如 content.code,用起來十分方便,但如果響應結果為 text/html 結構時,便不能這么用了。

這時候,我們能不能使用正則表達式來提取呢?答案是肯定的。

本人環境:HttpRunner V1.5.8

測試場景

在這里,我將訪問 TesterHome 的首頁,通過正則表達式來提取響應數據中的 title標題 ,下面是在瀏覽器中訪問和Fiddler抓包的結果。

訪問TesterHome

Fiddler抓包

extract中正則提取和斷言

從上面的抓包結果中,我們如果要提取 標題title 中的 TesterHome 關鍵字,可以使用正則表達式為:<title>(.+?)</title>。YAML格式的用例如下:

- test:
    name: visit TesterHome
    request:
      url: https://testerhome.com/
      method: GET
    extract:
      - title: <title>(.+?)</title>
    validate:
      - eq: [status_code, 200]
      - eq: [$title, "TesterHome"]

使用正則提取的數據,放入參數 title 中,如果后面需要用到該參數,則通過 $title 來引用。

validate中使用正則

除了在 extract 提取響應數據時使用正則,我們也可以直接在斷言時使用正則。YAML格式的用例如下:

- test:
    name: visit TesterHome 2
    request:
      url: https://testerhome.com/
      method: GET
    validate:
      - eq: [status_code, 200]
      - eq: ['<title>(.+?)</title>', "TesterHome"]

我在這里使用正則時,若直接用 <title>(.+?)</title> 會報錯,我們加上 單引號或雙引號 即可,如 '<title>(.+?)</title>'"<title>(.+?)</title>"

完整的用例:

- config:
    name: re test

- test:
    name: visit TesterHome
    request:
      url: https://testerhome.com/
      method: GET
    extract:
      - title: <title>(.+?)</title>
    validate:
      - eq: [status_code, 200]
      - eq: [$title, "TesterHome"]

- test:
    name: visit TesterHome 2
    request:
      url: https://testerhome.com/
      method: GET
    validate:
      - eq: [status_code, 200]
      - eq: ['<title>(.+?)</title>', "TesterHome"]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM