Python脚本做接口测试,抛弃接口测试工具是否可行?(二)
生活随笔
收集整理的這篇文章主要介紹了
Python脚本做接口测试,抛弃接口测试工具是否可行?(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習是為了更好的應用,之前做接口測試一直用的postman、fiddler,感覺用工具還是有些局限性,于是想著把學到的python靈活運用到接口測試中,于是就有了以下案例,思考著想用unittest做個簡單的接口測試腳本,可以支持單傳參和多傳參,平時工作中可以隨時使用,不但方便,還可以鞏固到學習的知識,。
思考點:
1、腳本支持單傳參和多傳參,利用了for循環和ddt實現
2、接口headers里需傳入登錄后的token值,利用了unittest每次運行用例時先執行setup初始化好headers
#unittest+ddt實現的接口測試腳本import requests,json,unittest,xlrd,os from ddt import ddt,data,unpack import requests@ddt class Test(unittest.TestCase):zp_url = 'http://test.com' # 域名params = [{"self_introduce": "我是參數1!"}, {"self_introduce": "我是參數3!"}] # 接口參數@classmethoddef setUpClass(cls):cls.headers = {"Content-Type": "application/json", "Authorization": "token"} # 請求頭cls.zp_login_url = '/login' # 登錄接口地址cls.zp_login_param = {"captcha": "1234", "client_type": 2, "login_type": 1, "mobile": 18221124103} # 登錄傳參try:res = requests.post(url=cls.zp_url + cls.zp_login_url, headers=cls.headers, json=cls.zp_login_param)cls.headers['Authorization']=res.json()['data']['token']except Exception:print('參數錯誤')cls.url = '/update_user_info' # 接口地址cls.method='POST'@classmethoddef tearDownClass(cls):passdef sendGet(self,api_url,param):try:res=requests.get(url=api_url,headers=self.headers).json()print(res)except Exception:print('參數錯誤')def sendPost(self,api_url,param):try:res = requests.post(url=api_url, headers=self.headers, json=param).json()print(res)except Exception:print('參數錯誤')@data(*params)def test(self,params):if self.method=='GET' or self.method=='get' or self.method=='Get':self.sendGet(self.zp_url+self.url,params)elif self.method== 'POST' or self.method=='post' or self.method=='Post':self.sendPost(self.zp_url+self.url,params)else:print('請傳正確請求方式GET或POST') if __name__== '__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py {'code': 0, 'data': {}, 'msg': '成功'} .. ---------------------------------------------------------------------- {'code': 0, 'data': {}, 'msg': '成功'} Ran 2 tests in 0.462sOKProcess finished with exit code 0 #unittest實現的接口測試腳本import requests,json,unittest,xlrd,os from ddt import ddt,data,unpack import requests,json @ddt class Test(unittest.TestCase):zp_url = 'http://test.com' # 域名@classmethoddef setUpClass(cls):cls.headers = {"Content-Type": "application/json", "Authorization": "token"} # 請求頭cls.zp_login_url = '/login' # 登錄接口地址cls.zp_login_param = {"captcha": "1234", "client_type": 2, "login_type": 1, "mobile": 18221124103} # 熟仁直聘登錄傳參try:res = requests.post(url=cls.zp_url + cls.zp_login_url, headers=cls.headers, json=cls.zp_login_param)cls.headers['Authorization']=res.json()['data']['token']except Exception:print('參數錯誤')cls.url = '/update_user_info' # 接口地址cls.params = [{"self_introduce": "我是參數1!"}, {"self_introduce": "我是參數3!"}] # 接口參數cls.method='POST'@classmethoddef tearDownClass(cls):passdef sendGet(self,api_url,param):try:res=requests.get(url=api_url,headers=self.headers).json()print(res)except Exception:print('參數錯誤')def sendPost(self,api_url,param):try:res = requests.post(url=api_url, headers=self.headers, json=param).json()print(res)except Exception:print('參數錯誤')def test(self):for param in self.params:if self.method=='GET' or self.method=='get' or self.method=='Get':self.sendGet(self.zp_url+self.url,param)elif self.method== 'POST' or self.method=='post' or self.method=='Post':self.sendPost(self.zp_url+self.url,param)else:print('請傳正確請求方式GET或POST') if __name__== '__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py {'data': {}, 'code': 0, 'msg': '成功'} . ---------------------------------------------------------------------- Ran 1 test in 0.515sOK {'data': {}, 'code': 0, 'msg': '成功'}Process finished with exit code 0?
總結
以上是生活随笔為你收集整理的Python脚本做接口测试,抛弃接口测试工具是否可行?(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部署java项目_企业最看重什么样的Ja
- 下一篇: php中页面平滑回到顶部代码,原生JS实