httprunner系列1---提取cookie


參考:https://www.cnblogs.com/yoyoketang/default.html?page=5

1、Django 的CSRF保護機制:

(1)CSRF是跨站點偽造請求

(2)django第一次響應來自某個客戶端請求時,會隨機生成一個Token,將token放進cookie,每次Post請求都會帶上cookie

① 在返回的 HTTP 響應的 cookie 里,django 會為你添加一個 csrftoken 字段,其值為一個自動生成的 token

② 在所有的 POST 表單時,必須包含一個 csrfmiddlewaretoken 字段 (只需要在模板里加一個 tag, django 就會自動幫你生成,見下面)

③ 在處理 POST 請求之前,django 會驗證這個請求的 cookie 里的 csrftoken 字段的值和提交的表單里的 csrfmiddlewaretoken 字段的值是否一樣。如果一樣,則表明這是一個合法的請求,否則,這個請求可能是來自於別人的 csrf 攻擊,返回 403 Forbidden.

④ 所有 ajax POST 請求里,添加一個 X-CSRFTOKEN header,其值為 cookie 里的 csrftoken 的值

2、Httprunner寫用例時,需要關聯cookie,若沒有關聯,會導致403錯誤(動態關聯cookie)

httprunner繼承了request優點,會自動管理cookie,不需要再次提取
 1 -   config:
 2  name: test login api demo 3  variables: {} 4  request: 5 base_url: http://49.235.x.x:80xx 6 - test: 7  name: 先訪GET問登錄首頁,獲取cookies 8  request: 9  method: GET 10 url: /xadmin/ 11  extract: 12 - csrfmiddlewaretoken: name='csrfmiddlewaretoken' value='(.+?)' # 頁面正則提取隱藏參數csrfmiddlewaretoken 13  validate: 14 - eq: 15 - status_code 16 - 200 17 18 - test: 19  name: 登錄用例 20  request: 21  headers: 22 Content-Type: application/x-www-form-urlencoded 23  data: 24 csrfmiddlewaretoken: $csrfmiddlewaretoken 25  username: admin1 26 password: 1111111***** 27 this_is_the_login_form: "1" 28 next: /xadmin/ 29  method: POST 30 url: /xadmin/ 31  validate: 32 - eq: 33 - status_code 34 - 200

 


免責聲明!

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



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