如何在用例之间传递值_接口测试:A12_HttpRunner_cookie整理_01_提取指定cookie值
A12_HttpRunner_cookie整理_01_提取指定cookie值
在 HTTP 響應中,通過響應頭設置 cookies 記錄用戶信息以及身份憑證。用 HttpRunner 編寫測試用例的時候,模擬用戶身份就需要從中提取 cookies 信息。
實現 cookies 提取有多種方式,如:
- 通過 cookies 關鍵字提取全部 cookies;
- 通過 cookies.xxxxx 獲取某個名稱的 cookie 值
- 通過 headers.Set-Cookie 提取全部 cookies;
- 通過 headers.Set-Cookie.xxxxx 獲取某個名稱的 cookie 值;
- 通過 debugtalk.py 外置函數獲得 cookie 值;
1. 提取指定名稱的 Cookie 值
登錄系統后打開用戶管理頁面,抓包分析如下:
- 請求地址:http://localhost/myweb/jxc/system/user.asp
- 請求方法:GET
在請求頭中附加了cookie信息,存儲的是 SessionID 的值,此 cookie 是在第一次訪問系統時服務器返回的。
首先不附加 cookie,編寫測試用例:
- config: name: 員工管理- test: name: 測試步驟 - 打開員工管理頁面 request: url: http://localhost/myweb/jxc/system/user.asp method: GET extract: # 提取HTML中文本,用于驗證 # 響應實體中包括文本: ........ - p_info: action="(.*)"> validata: - eq: [status_code, 200] - eq: [$p_info, user_del.asp]執行以上測試用例,顯示失敗。
顯示用例中提取(extract)數據失敗。繼續往下看,發現返回的響應實體內容不是我們預期的內容,說明以上用例打開“員工管理”頁面失敗。
失敗原因比較容易分析,我們沒有經過登錄操作,試圖直接訪問系統內部頁面,肯定是不允許的。那么這里的關鍵就是此用例中沒有證明已經登錄成功這件事兒。前面抓包中的 cookie 那行數據,其實就是代表登錄成功與否的關鍵。
所以我們應該從登錄的響應信息中獲取 cookie,再把此 cookie 附加到打開“員工管理”的測試用例中。
先看看如何提取一個指定名稱的 cookie 吧。
格式:
request: url: http://localhost/myweb/jxc/system/danwei.asp headers: cookie: ASPSESSIONIDQQBASCAA=$sessionid舉例:
extract: - sessionid: cookies.ASPSESSIONIDQQBASCAA在后續請求中使用該 cookie 方法:
格式:
request: headers: cookie:=舉例:
request: url: http://localhost/myweb/jxc/system/danwei.asp headers: cookie: ASPSESSIONIDQQBASCAA=$sessionid本次實驗我們將編寫兩個獨立的用例文件,實驗過程如下:
- 步驟1:調用登錄用例,獲取cookie并輸出
- 步驟2:附加以上cookie 值,打開員工管理頁面
1. 編寫登錄測試用例,并提取 cookie 值,文件名:login.yml
- config: name: 登錄操作- test: name: 測試步驟 - 進行登錄操作 request: url: http://localhost/myweb/jxc/index.asp?action=login method: POST data: username: admin pwd: admin allow_redirects: FALSE extract: # 此處提取 cookie,即 SessionID 信息 - p_sid: cookies.ASPSESSIONIDQQBASCAA # 提取HTML中文本,用于驗證 # 原始文本為: ......... - p_info: HREF="(.*)"> validata: - eq: [status_code, 302] - eq: [$p_info, main.asp]2. 編寫打開“員工管理頁面”用例,附加以上cookie 值,文件名:user.yml
- config: name: 員工管理- test: name: 測試步驟 - 調用登錄測試用例 testcase: login.yml # 輸出提取的 cookie 值 output: [p_sid]- test: name: 測試步驟 - 打開員工管理頁面 request: url: http://localhost/myweb/jxc/system/user.asp method: GET headers: # 附加前面用例提供的 cookie 值 cookie: ASPSESSIONIDQQBASCAA=$p_sid extract: # 提取HTML中文本,用于驗證 # 原始文本為: ........ - p_info: action="(.*)"> validata: - eq: [status_code, 200] - eq: [$p_info, user_del.asp]執行該用例:
總結
以上是生活随笔為你收集整理的如何在用例之间传递值_接口测试:A12_HttpRunner_cookie整理_01_提取指定cookie值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国建设银行公务卡与信用卡有什么区别
- 下一篇: 双流棠湖中学怎么样_2020年双流中学和