測試開發Python培訓 模擬登入新浪微博 技術篇

2022-07-30 01:36:16 字數 1887 閱讀 9510

第一步:分析協議內容

可以利用協議工具進行分析,在這裡我們可以用火狐瀏覽器來進行跟蹤,輸入使用者名稱後,會進行預登入,**為:通過響應(sinassocontroller.prelogincallback()),這裡分析會發現獲得四個變數,servertime、nonce、pubkey和rsakv.

第二步:模擬請求

請求**:表單資料如下:

主要提交資料:

su:base64加密過後的使用者名稱

servertime/nonce/rsakv之前預登陸獲取到了

sp是加密過戶的密碼

username 經過了base64 計算: username = base64.encodestring( urllib.quote(username) )[:-1];

password 經過了三次sha1 加密, 且其中加入了 servertime 和 nonce 的值來干擾。

即: 兩次sha1加密後, 將結果加上 servertime 和 nonce 的值, 再sha1 算一次。

第三步:處理請求響應 

提交之後: 將引數組織好, post請求。 這之後還沒有登入成功。,原因是返回的並不是微博個人主頁,而是一段重定向的**:

登入成功後retcode 的值是0 。接下來再請求這個url,這樣就成功登入到微博了。

記得要提前build 快取

備註:技術實現:

cookielib: 用來儲存cookies.

urllib2: 傳送請求獲取網頁資料,與cookielib配合,利用cookie訪問.

json:處理資料交換格式

**:第一步:分析協議內容

可以利用協議工具進行分析,在這裡我們可以用火狐瀏覽器來進行跟蹤,輸入使用者名稱後,會進行預登入,**為:通過響應(sinassocontroller.prelogincallback()),這裡分析會發現獲得四個變數,servertime、nonce、pubkey和rsakv.

第二步:模擬請求

請求**:表單資料如下:

主要提交資料:

su:base64加密過後的使用者名稱

servertime/nonce/rsakv之前預登陸獲取到了

sp是加密過戶的密碼

username 經過了base64 計算: username = base64.encodestring( urllib.quote(username) )[:-1];

password 經過了三次sha1 加密, 且其中加入了 servertime 和 nonce 的值來干擾。

即: 兩次sha1加密後, 將結果加上 servertime 和 nonce 的值, 再sha1 算一次。

第三步:處理請求響應 

提交之後: 將引數組織好, post請求。 這之後還沒有登入成功。,原因是返回的並不是微博個人主頁,而是一段重定向的**:

登入成功後retcode 的值是0 。接下來再請求這個url,這樣就成功登入到微博了。

記得要提前build 快取

備註:技術實現:

cookielib: 用來儲存cookies.

urllib2: 傳送請求獲取網頁資料,與cookielib配合,利用cookie訪問.

json:處理資料交換格式

**:

python測試開發教程 文件測試

如果你經常閱讀python的官方文件,可以看到很多文件都有示例 比如re模組就帶了很多示例 import re m re.search abc def abcdef m.group 0 def 可以把這些示例 在python的互動式環境下輸入並執行,結果與文件中的示例 顯示的一致。這些 與其他說明可...

python測試開發學習筆記

練習題1 請大家找出s aabbccdd xffff 中,字母出現次數最多的字母 遍歷所有的字元,把每乙個字元出現的次數,用count函式做乙個統計,宣告乙個儲存最大值的字典物件,遍歷的時候動態判斷當前字元出現的字元數字是否比字典中的最大值更大 如果等於則也存進去 如果小於則忽略,如果大於則把字典中...

測試開發探秘

不知道從什麼時候開始,出現了測試開發工程師這個稱呼,以前的測試是測試工程師,開發是開發工程師,可究竟什麼時候出現的測試開發工程師呢?怎麼才算得上是測試開發工程師呢?其實雖然我做測試開發,高階測試開發,以及資深測試開發很久了,但是不能給出乙個準確的定義。但是從以往的工作,招聘面試等經驗中,可以分析一下...