先寫一個運行接口測試的主方法
import requests
import json
class RunMain:
def send_get(self, url, data):
res = requests.get(url=url, data=data).json()
return json.dumps(res, indent=2, sort_keys=True)
def send_post(self, url, data):
res = requests.post(url=url, data=data).json()
return json.dumps(res, indent=2, sort_keys=True)
def run_main(self, url, method, data=None):
res = None
if method == 'GET':
res = self.send_get(url, data)
else:
res = self.send_post(url, data)
return res
如上只需傳入對應參數(shù)調用此方法,那么我們如何將requests與unittest結合起來呢壶熏?
首先需要把對應模塊導入進來
# manage需要導入的模塊
from base.manage import RunMain
然后在unittest中實例化類,case中執(zhí)行用例俄占,傳入?yún)?shù)執(zhí)行
# coding:utf-8
import unittest
from base.manage import RunMain
class TestMethod(unittest.TestCase):
def setUp(self):
#實例化類
self.run = RunMain()
def test_01(self):
url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
data = {
'mobile': '159*****455',
'password': 'e10adc3949ba59abbe56e057f20f883e'
}
res = self.run.run_main(url, 'POST', data)
print(res)
def test_02(self):
url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
data = {
'mobile': '159******456',
'password': 'e10adc3949ba59abbe56e057f20f883e'
}
res = self.run.run_main(url, 'POST', data)
print(res)
if __name__ == '__main__':
unittest.main()
運行結果:
運行結果.png
當執(zhí)行case足夠多的時候,我們要怎么去檢查用例的返回結果是否正確渤弛?這就要用到unitest的assert了,
常用的assertEqual傳入三個參入佳头,第一個參數(shù)與第二的參數(shù),第三個參數(shù)可以省略康嘉,第四個參數(shù)"如果第一、第二個參數(shù)不相等敷钾,則返回...."
assertEqual判斷.png
如在case里面加上斷言:
def test_01(self):
url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
data = {
'mobile': '159*****455',
'password': 'e10adc3949ba59abbe56e057f20f883e'
}
res = self.run.run_main(url, 'POST', data)
#將返回值轉換為字典類型
res_a=json.loads(res)
self.assertEqual(res_a['code'],200,'測試失敗')
備注:如果res_a['code'] !=200,則測試失敗