今天利用unittest+requests來分享乙個簡單的介面測試,下面開始吧!
1、介面測試的幾個基本元素就是url,method(常用的請求方式就是get和post),data以及headers,只有先拿到這幾樣東西,我們才可以進行下一步的工作
2、測試的意義就是想知道符不符合預期,所以要設定斷言
3、為了更直**出執行結果,我們用htmltestrunner編寫報告
介面測試的通用模板一般是:
import requests
res=requests.method(url=url,data=data,headers=header) #獲取response響應的內容
apitest.py放在testcase資料夾下
# apitest.py
import unittest
import requests
import json
class testapi(unittest.testcase):
#獲取登入的cookies
def setup(self) :
print("介面測試開始")
def test_postapi(self):
print('這是post請求')
data=
res = requests.post(url=url, data=data).json() #res的結果是:}
#設定斷言
self.asserttrue(res['ok'], 'login介面報錯了')
def test_getapi(self):
print('這是get請求')
res =requests.get(url=url,cookies=self.cookies).json() #res的結果是:}
#設定斷言
self.asserttrue(res['ok'],'client/info介面報錯了')
def teardown(self):
print("介面測試結束")
if __name__=='__main__':
unittest.main()
接下來看下執行結果:
寫到這裡,如果有個測試報告,是不是感覺高階點了呢,那麼下面就來編寫個測試用例報告吧
(注意,用例和報告分開寫)
#新建報告report.py
from htmltestrunner import htmltestrunner
import unittest
import os
current_path=os.getcwd()
case_path=os.path.join(current_path,"testcase")
report_path=os.path.join(current_path,'report')
def load_all_case():
discover=unittest.defaulttestloader.discover(case_path,pattern="apitest.py")
return discover
if __name__=='__main__':
report_title='測試用例報告.html'
result_path=os.path.join(report_path,report_title)
desc='兩個用例報告'
with open(result_path,'wb') as report:
runner=htmltestrunner(stream=report,title=report_title,description=desc)
runner.run(load_all_case())
好的,接下來看看報告
那麼,乙個簡易的介面測試就完成了,不過這種做法的缺點就是每增加乙個用例就要增加乙個test方法,復用性很差。下期會給大家分享乙個高階版的介面測試,利用unittest+ddt+excel以及**的封裝,實現介面的自動化測試。想學unittest+ddt+excel實現介面自動化測試
最簡單的try catch 測試
include using namespace std main catch system pause return 0 throw catch 語句是c 的機制,有點像goto語句,一扔一接。又有點象函式,可以帶乙個變數。throw 什麼呢?throw 表示式 表示式可以是數值,變數,帶運算子的表...
簡單的介面測試
引言 你好,我是handsomecui,下面介紹自己琢磨出的一種介面測試的方法。思路 本想著用junit來寫的,但是 單元測試與webservice好像有衝突,然後就想著建立乙個測試類,裡面放各種方法的json測試傳,通過瀏覽器傳的方法名反射得到方法,以及json串。測試類的設計 自己建立json串...
介面測試的簡單應用
啥是介面 介面是後端給前端開發人員資料的一種方式,我們測試介面是為了給前端開發人員提前檢驗該介面是否是通過的,改變介面報文的引數,該介面返回的資料是否發生相應的變化並且是正確的。介面的形式 1045 500100201711203 123456 500100201711203 0456789 265...