1. 程式人生 > >get post 接口代碼及斷言編寫

get post 接口代碼及斷言編寫

() OS pan __name__ 直接 需要 get 自己 字母

post 請求接口

import requests
import json
url_path = "http://www.baidu.com"
data = {"username":"mushishi","password":"1234"}
def send_post(url,data):
    res = requests.post(url=url_path,data = data)
    return res.json()#轉換成json格式

send_post(url_path,data)#調用函數直接傳入地址及參數

get 請求接口(把參數寫在地址後面的寫法)

url_path = "
http://baidu.com?username=name&passwd=1234" data = {} def send_get(url): #res = requests.get(url=url_path).json()#把參數寫在地址後面的寫法 return json.dump(res,indent = 2,sort_keys=True)#格式化輸出 send_get(url_path)

get 請求接口

import requests
import json
url_path = "http://www.baidu.com"
data = {"username":"
mushishi","password":"1234"} def send_get(url,data): res = requests.get(url=url_path,data = data) return res.json()#轉換成json格式 send_get(url_path,data)#調用函數直接傳入地址及參數

把get 和post封裝到一個方法,要使用哪個就調用哪個

import requests
import json

def send_get(url,data):
    res = requests.get(url,data).json()
    
return json.dump(res,index = 2,sorted_keys=True) def send_post(url,data): res = requests.post(url,data).json() return json.dumdp(res,index=2,sorted_keys=True) def run_main(url,method,data=None):#為了更好的使用get和post所以定data默認空值 res =None#先賦個空值,不管你調用哪個方法都會返回這個值 if method == "get" res == send_get(url,data) else: res == send_post(url,data) return res if __name__=="main": url = "http://www.baidu.com" data ={"cart":"11"}#有參就傳,沒參就用默認的 run_main(url,"get",data) run_main(url,"post",data) run_main(url,"get")

get 和post 方法封裝到類

import requests
import json
class RuanMain():
    def __init__(self,url,method,data = None):
        self.res = self.run_main(url,method,data)

    def send_get(self,url,data):
        res = requests.get(url=url,data=data,).json()
        return json.dump(res,index = 2,sorted_keys=True)

    def send_post(self,url,data):
        res=requests.post(url=url,data=data).json()
        return json.dump(res,index=2,sorted_keys=True)
if __name__=="__main__":
    url = "http://www.baidu.com"
    data={"cart:11"}
    run=RuanMain(url,"get",data)
    run.res

調用之前封裝的runmain類方法進行寫用例以及斷言

import unittest
import runmain
class TestMethod1(unittest.TestCase):
    @classmethod
    def setUpClass(cls):#固定取名,不能隨便取
        print "類執行之前方法"

    @classmethod
    def tearDownClass(cls):
        print "類執行之後方法"

    def setUp(self):#在第一個測試方法執行之前都要先執行這個方法
        run = runmain()
    def tearDown(self):#每次執行之後都要執行這個方法
        print "test--->tearDown"
    def test_01(self):#每個測試用例都要以test開頭,不然不會執行
        url ="htpp://www.baidu.com"
        data ={"name":"guo","passwd":"1234"}
        run = runmain()
        res = self.run.run_main(url,"post",data)
        if res["errorCode"]==1001:#用自己的方法判斷測試結果
            print "測試通過"
        else:
            print "測試失敗"
    def test_02(self):#每個測試用例都要以test開頭,不然不會執行
        url = "http://www.baidu.com"
        data = {"name":"guo","password":"123456"}
        res = self.run.run_main(url,"get",data)
        self.assertEqual(res["errorCode"],1000,"測試失敗")#用python方法判斷
if __name__=="__main__":
    unittest.main()#執行所有測試用例

unittest 過濾執行的用例

import unittest
class _Baidu(unittest.TestCase):
    #@unittest.skip("test_01")#執行的時候過濾掉這個
    def test_01(self):
        print "這是第一個用例"
    def test_02(self):
        print "這是第二個用"
    def test_04(self):
        print "這是第三個用例"
    def test_03(self):
        print "這是第四個用例"
if __name__=="__main__":
    #unittest.main()#這是執行所有用例
    suite = unittest.TestSuite()
    suite.addTest(_Baidu("test_03"))#把需要執行的用例添加到套件去
    suite.addTest(_Baidu("test_01"))
    unittest.TextTestRunner().run(suite)#執行已添加好的測試套件
註:執行是按照,字母順序和數字順序

get \post 接口代碼及斷言編寫