<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
其實我覺得介面測試很簡單,比一般的功能測試還簡單(這話我先這樣說,以後可能會刪O(∩_∩)O哈!),現在找工作好多公司都要求有介面測試經驗,也有好多人問我(也就兩三個人)什麼是介面測試,本著不懂也要裝懂的態度,我會說:所謂介面測試就是通過測試不同情況下的入參與之相應的出參資訊來判斷介面是否符合或滿足相應的功能性、安全性要求。
我為啥說介面測試比功能測試簡單呢,因為功能測試是從頁面輸入值,然後通過點選按鈕或連結等傳值給後端,而且功能測試還要測UI、前端互動等功能,但介面測試沒有頁面,它是通過介面規範檔案上的呼叫地址、請求引數,拼接報文,然後傳送請求,檢查返回結果,所以它只需測入參和出參就行了,相對來說簡單了不少。
正好最近在做介面測試,之前公司的方案是使用postman進行介面測試。但是偉大的牆導致我們只能用離線版postman。。然後一個很長很長的介面列表,一個接一個的存取。我的天哪。。所以萌生了一個想法,使用python編寫一套介面測試指令碼,設定介面列表,然後逐條存取,輸出紀錄檔。
第一個坑:
POST 和 GET----GET一般用於獲取/查詢資源資訊,而POST一般用於更新資源資訊|Get是向伺服器發索取資料的一種請求,而Post是向伺服器提交資料的一種請求。
做過介面測試或者做過前端的人都知道,介面的存取方式是不一致的,所以才會使用postman來進行介面測試,因為它可以設定post和get方式。使用python模擬這倆種存取方式是重中之重。先說GET方式。GET方式就比較簡單了,把介面放進瀏覽器位址列,點下回車就完成了一次GET。所以就需要使用python存取URL就可以模擬一次GET 測試。
import urllib2 url_save = 'http://www.baidu.com/' try: s_save = urllib2.urlopen(url_save).read() print s_save except urllib2.HTTPError, e: print e.code except urllib2.URLError, e: print str(e)
如上所示就完成了一次GET請求,呼叫urllib2庫,然後將一個字串形式的URL傳給urllib2.urlopen函數,最後使用read()方法將GET回來的資料儲存起來。
然後說說POST。其實在python的urllib2庫中,我們剛剛所使用的urlopen函數還有其他幾樣不是必選的入參,因為這些入參給定了初始化的值:
def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, cafile=None, capath=None, cadefault=False, context=None):
如上程式碼,urllib庫有一個很智慧的毛病。data不給值,存取方式就是GET,data給了值,方式就會變成POST;所以模擬POST 方式的程式碼如下:
import urllib import urllib2 url = 'http://www.example.com' # values的形式:name:value values = {'**' : '***', '**' : '***', '**' : '***' } #使用urllib.urlencode函數對values字典進行處理,最終形式為:**=***&**=*** data = urllib.urlencode(values) #如果對data順序有要求,建議自己拼接data req = urllib2.Request(url, data) response = urllib2.urlopen(req) the_page = response.read()
就像如上程式碼,把POST方式所需要的資料寫到data引數中去,POST方式就模擬成功了。
第二個坑:cookie的使用
用python獲取cookie所需要的庫叫做cookielib。獲取cookie的例子:
# 這裡有四種CookieJar,CookieJar是最原始的 cookie_use = cookielib.CookieJar() handler = urllib2.HTTPCookieProcessor(cookie_use) # 使用繫結好CookieJar的handler建立一個opener opener = urllib2.build_opener(handler) # 將opener安裝到urllib2中 urllib2.install_opener(opener) # 使用安裝好的urllib2存取某一網站獲取cookie urllib2.urlopen('https://....../login') #這個時候cookie已經被CookieJar獲取到了 print cookie_use
在下一步,將獲取到的cookie繫結到opener頭中:
''' 將獲取到的cookie繫結到opener,上一步獲取的cookie並不滿足如下格式, 需要自己進行字串的切片和拼接 ''' opener.addheaders.append(('Cookie', 'name=***&888=888'))
現在的opener就可以用來存取任意需要登入的網站了!
功能:功能實現,實現與設計一致, 介面通過性測試
常見介面種類:
常見介面資料型別:
常見介面安全驗證方式:
常見介面請求方法:
常見狀態碼(RESTful規範):
介面業務型別:
獲取介面檔案:
Excel/TestLink/禪道
到此這篇關於利用python進行介面測試詳情的文章就介紹到這了,更多相關python介面測試內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45