這篇文章給大家分享的是有關(guān)Python+Requests+Unittest接口如何實(shí)現(xiàn)自動(dòng)化測(cè)試的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺(tái)運(yùn)營(yíng)、成都App定制開發(fā)、手機(jī)網(wǎng)站制作、微信網(wǎng)站制作、軟件開發(fā)、托管服務(wù)器等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從成都創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。具體如下:
1. 介紹下python的requests模塊
Python Requests快速入門 :http://cn.python-requests.org/zh_CN/latest/
想必會(huì)Python基礎(chǔ)的小伙伴們一看就懂了
2. Requests接口自動(dòng)化測(cè)試:
2.1 如何利用這么利器進(jìn)行接口測(cè)試,請(qǐng)看小demo:
# -*- coding:utf-8 -* import requests def test(): url = "http://120.24.239.**:9080/user/app/get_sys_time.do" #測(cè)試的接口url headers = {'content-type': 'application/json'} r = requests.get(url=url, headers=headers) return r.json() if __name__ == "__main__": test()
在進(jìn)行接口測(cè)試的過程中對(duì)傳入的參數(shù)進(jìn)行邊界值測(cè)試、錯(cuò)誤推導(dǎo)測(cè)試、等價(jià)類測(cè)試等測(cè)試方法進(jìn)行測(cè)試。有時(shí)安全性考慮,會(huì)在請(qǐng)求接口url上添加session的東東,這個(gè)時(shí)候不怕,直接把登錄接口返回碼中的session提取出來,放在post請(qǐng)求的header里,例如:
# -*- coding:utf-8 -* import requests def test(): url = "http://120.24.239.**:9080/user/app/login.do" #登錄的接口 headers = {'content-type': 'application/json'} r = requests.get(url=url, headers=headers) return r.json() def test_have_session(url): cookie = "JSESSIONID=" + "".join(test().get("JSESSIONID")) #利用登錄接口獲取JSESSIONID headers = {'content-type': 'application/xml', 'Cookie': cookie} r = requests.post(url, headers=headers) return r.json() if __name__ == "__main__": url = "" #測(cè)試的接口url test_have_session(url)
2.2 做完所有接口的接口測(cè)試后,就要編寫接口自動(dòng)化了,不可能開發(fā)每次去修改接口你又得手動(dòng)的去測(cè)試一遍,特別是產(chǎn)品上線了,需要到所有的接口進(jìn)行一遍測(cè)試,這個(gè)時(shí)候有了接口自動(dòng)化就方便多了,接下來看下一個(gè)縮減版的接口自動(dòng)化測(cè)試demo:
# -*- coding:utf-8 -* # 測(cè)試報(bào)告郵件內(nèi)容 text = "" # 用例統(tǒng)計(jì) num_success = 0 num_fail = 0 # 測(cè)試通過 def test_success(): global num_success num_success += 1 print_out(u"測(cè)試結(jié)果:通過\n") # 測(cè)試不通過 def test_fail(txt): global num_fail num_fail += 1 print_out(u"測(cè)試結(jié)果:不通過 \n錯(cuò)誤信息: " + txt + "\n") # 郵件內(nèi)容寫入 & 客戶端輸出 def print_out(message): global text text += "\n" + message print message # 返回值判斷 def test_result(result, code): if result.get("status") == code: test_success() return "pass" else: txt = u"期望返回值:" + str(code) + u" 實(shí)際返回值:" + str(result.get("status")) test_fail(txt) return "fail"
def test_interface(): # 初始化測(cè)試起始時(shí)間 start_time = datetime.datetime.now() # 構(gòu)造測(cè)試集 suite = unittest.TestSuite() suite.addTest(MyTestSuite("test_login")) # 登陸 suite.addTest(MyTestSuite("test_employees")) # 員工管理 suite.addTest(MyTestSuite("test_department")) # 部門管理 suite.addTest(MyTestSuite("test_work_sys")) # 工作日歷管理 suite.addTest(MyTestSuite("test_holiday")) # 節(jié)假日管理 suite.addTest(MyTestSuite("test_queryAp")) # 智能終端管理 suite.addTest(MyTestSuite("test_edit_info")) # 企業(yè)信息管理 & 個(gè)人信息 suite.addTest(MyTestSuite("test_data")) # 每日數(shù)據(jù)報(bào)表 & 月度數(shù)據(jù)報(bào)表 # 執(zhí)行測(cè)試 runner = unittest.TextTestRunner() runner.run(suite) # 測(cè)試執(zhí)行時(shí)間計(jì)算 end_time = datetime.datetime.now() total_use_case = u"執(zhí)行用例總數(shù):" + str(num_success + num_fail) + \ u"\t通過數(shù):" + str(num_success) + \ u"\t不通過數(shù):" + str(num_fail) total_time = u"\t總共耗時(shí):" + str((end_time-start_time).seconds) + u"秒" print_out(total_use_case + total_time) # 發(fā)生郵件測(cè)試報(bào)告 Send_email.send_email(text)
例子中缺失很多判斷按具體項(xiàng)目測(cè)試的接口去進(jìn)行判斷,整體的框架是這樣子的,在接口很多的項(xiàng)目中,可以分文件進(jìn)行編寫,方便后期接口測(cè)試用例的修改,在我現(xiàn)在公司的產(chǎn)品中總共有69個(gè)接口,將這69個(gè)接口我進(jìn)行了分類去管理,如果需要將接口測(cè)試腳本放服務(wù)器去跑,需要添加try….except,將出現(xiàn)的錯(cuò)誤信息報(bào)出來,利用smtplib發(fā)送錯(cuò)誤信息到自己的郵箱就好了。
感謝各位的閱讀!關(guān)于“Python+Requests+Unittest接口如何實(shí)現(xiàn)自動(dòng)化測(cè)試”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱:Python+Requests+Unittest接口如何實(shí)現(xiàn)自動(dòng)化測(cè)試-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://aaarwkj.com/article10/dpgsgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、關(guān)鍵詞優(yōu)化、電子商務(wù)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)