讓我歡喜讓我憂的接口測試【token解析】

        有機會接觸接口測試,剛開始有些興奮、有點激動,認爲這是一項非常有挑戰性的工作。。。。。。

        可當真正面對十幾個接口的時候,我傻眼了,一排排的POST, GET, PUT, HEAD.....的請求方式,我在問自己:我該怎麼去模擬這些請求?看着窗外的雲,我陷入了恐慌...

但既然來了,就得勇敢的面對。之前做過python UI 自動化,對python的語法基本瞭解一些,接下來就是一陣狂“搜”,電腦上面不知道打開了多少個百度頁面,從那些樂於分享的好心人的文章裏面,我慢慢的學會了GET請求,好興奮,果然能模擬web請求!但是後面要實現持續集成,光寫了幾行代碼,很難實現這個。得有個自動化框架。。。。。於是我勇敢的向老大推進"Robot Framework" 這個框架,之前用來做過web UI自動化測試,但是接口還從來未曾觸摸過。

        現在問題來了,用RF怎麼實現自動化,這是個關鍵字驅動的框架,我該用哪些關鍵字去模擬web請求?我再一次陷入了恐慌....

        好在有RF扣扣羣,裏面的高人很多,幫我不少忙,真心感謝你們,你們是可愛的人!!

        通過導入RequestsLibrary庫,可以在RF上實現GET請求,但接口測試還是要結合業務,看你實現什麼功能,比如:這裏要實現一個登陸後獲取用戶信息的接口


        當我看到這個token的時候,壓根不知道它是個神馬東西,於是又去百度狂“收”,都是一些關於token的說明,沒有關於它的操作,我的工作block了,我無法操作這個token。百度搜索也許不會有直接的結果,但是你從人家的描述中可以受到啓發。於是我用fiddler去抓包查看,果然有戲:原來登錄成功後,服務端會返回一個token回來:

        於是,我從返回參數下手,多謝pycharm的自動提示功能,當我用代碼實現的時候,敲入respons.之後,出來很多關於response的方法,其中就有cookie,header之類的,我果斷獲取,然後打印出來,確實有“set-cookie”這樣的key,它的value就是token=xxxxx-xxxxx-xxxx-xxx,我想我可以獲取到這個token了。

        再回到開頭那個接口,web請求裏面帶有Cookie:token=xxxxx-xxxxx-xxxx-xxx這樣的參數,再抓包看一下,的確是在請求的header裏面的東西:

於是我在web請求的header裏面果斷封裝這個參數去請求接口(其他參數這裏不講):

然後就神祕的獲得了接口的返回值:200, {id: 65633265896}


總之,token就是由服務端生成的一個經過加密的用戶信息(比如:用戶id之類的),用戶登錄之後,執行系統相關的操作,服務器可能會要求請求參數中帶有這個token並做校驗,如果客戶端傳入的這個token跟服務端的值不一致,接口就會請求失敗,這樣也是達到安全的目的吧



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章