python接口自動化(十四)--session關聯接口(詳解)


簡介

  上一篇cookie繞過驗證碼模擬登錄博客園,但這只是第一步,一般登錄后,還會有其它的操作,如發帖,評論等等,這時候如何保持會話呢?這里我以jenkins平台為例,給小伙伴們在沙場演練一下。

session簡介

1、通過help方法查看幫助文檔,截圖一部分,后面省略了,有興趣的自己可以敲一下看看

2、參考代碼

1 # coding:utf-8
2 import requests
3 help(requests.session())

使用session登錄

1、使用session登錄只需在登錄的基礎上稍做修改,即可

 

2、參考代碼

# coding:utf-8
import requests
# 先打開登錄首頁,獲取部分session
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
           }  # get方法其它加個ser-Agent就可以了
d = {"j_username": "admin",
     "j_password": "111111",
     "from": "",
     "Submit": u"登錄",
     "remember_me": "on"
     }
s = requests.session()
r = s.post(url, headers=headers, data=d)
#print (r.content.decode('utf-8'))

保存編輯

1、先打開新建任務,手動輸入任務名稱和選擇下邊選項后,打開fiddler抓包,然后點擊“確定”

fiddler抓包

2、把body的參數內容寫成字典格式

 

參考代碼:

1 body = {"name":"北京-宏哥1",
2         "mode": "hudson.model.FreeStyleProject",
3         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
4         "json":{"name":"北京-宏哥1",
5                 "mode": "hudson.model.FreeStyleProject",
6                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
7 
8         }
9 }

3、用上面登錄保存的session繼續發送post請求,來新建任務

 

4、執行后,查看所有任務就多了一條新增的了

 

5、運行結果部分截圖:

6、粘貼到記事本修改后綴查看:

參考代碼

 1 # coding:utf-8
 2 import requests
 3 # 先打開登錄首頁,獲取部分session
 4 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 5 headers = {
 6             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 7            }  # get方法其它加個ser-Agent就可以了
 8 d = {"j_username": "admin",
 9      "j_password": "111111",
10      "from": "",
11      "Submit": u"登錄",
12      "remember_me": "on"
13      }
14 
15 s = requests.session()
16 r = s.post(url, headers=headers, data=d)
17 #print (r.content.decode('utf-8'))
18 # 正則表達式提取賬號和登錄按鈕
19 import re
20 t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))   # 用python3的這里r.content需要解碼
21 print (t[0])
22 print (t[1])
23 #新建任務
24 url1 = "http://localhost:8080/jenkins/createItem"
25 body = {"name":"北京-宏哥1",
26         "mode": "hudson.model.FreeStyleProject",
27         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
28         "json":{"name":"北京-宏哥1",
29                 "mode": "hudson.model.FreeStyleProject",
30                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
31 
32         }
33 }
34 
35 r2 = s.post(url1, data=body, verify=False)
36 print (r2.content.decode('utf-8'))

這里我是用新建任務寫的案例,小伙伴可以試下Jenkins里邊其他的關聯接口

小結

小伙伴都看到了吧,session關聯接口就是這么簡單!!!趕快動起來吧。想要學習的小伙伴可以用博客園來練習一下,遇到問題歡迎打擾和溝通!


免責聲明!

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



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