python 介面自動化 - 面向物件思想對 Restful 型別的請求進行二次封裝 - 寫用例
阿新 • • 發佈:2021-12-23
根據 Requests 的原始碼進行二次封裝
rest_client.py
import requests class RestClient(): def __init__(self, KeepLogin, api_root_url): self.KeepLogin = KeepLogin self.api_root_url = api_root_url def get(self, url, data): return self.request(url, "GET", data = data) def post(self, url, data = None, json = None, **kwargs): return self.request(url, "POST", data, json, **kwargs) def request(self, url, method, data = None, json = None, **kwargs): url = self.api_root_url + url if method == "GET": return self.KeepLogin.get(url, params = data) if method == "POST": return self.KeepLogin.post(url, params=data, json=json, **kwargs)
編寫測試用例
import random import unittest import requests from rest_client import RestClient Userdict = { "account": "admin", "pwd": "660B8D2D5359FF6F94F8D3345698F88C" } Userdict_error = { "account": "admin", "pwd": "1660B8D2D5359FF6F94F8D3345698F88C" } class SMSLoginAndSchoolAdd(unittest.TestCase): def setUp(self): self.s = requests.session() self.url = "http://192.168.233.128:8080/recruit.students" self.KeepLogin = RestClient(self.s, self.url) def test_01(self): print("測試用例01:正確使用者名稱與密碼,登陸成功") a = self.KeepLogin.get("/login/in", Userdict) self.assertIn("退出", a.text) print("測試用例01通過") def test_02(self): print("測試用例02:正確使用者名稱與錯誤密碼,登陸失敗") a = self.KeepLogin.get("/login/in", Userdict_error) self.assertNotIn("退出", a.text) print("測試用例02通過") def test_03(self): print("測試用例03:在登陸狀態下成功新增任意學校") # 一個隨機學校名和一個隨機備註 SchoolNameRandom = random.randint(1, 1000000000) RemarkRandom = random.randint(1, 100000) # 新建學校post請求的body引數 SchoolAddBody = { "schoolName": SchoolNameRandom, "listSchoolType[0].id": 2, "canRecruit": 1, "remark": RemarkRandom } a = RestClient("http://192.168.233.128:8080/recruit.students") a.get("/login/in", Userdict) a.post("/school/manage/addSchoolInfo", data=SchoolAddBody) if __name__ == "__main__": unittest.main()
後續可以繼續對 python 介面進行封裝