Python 接口測試(五)
阿新 • • 發佈:2017-05-03
方式 img 思路 tag 會有 地址 api接口 pytho 自己
五:使用python進行組織編寫接口測試用例
接口測試其實就是幾個步驟。
- 拿到接口的url地址
- 查看接口是用什麽方式發送
- 添加請求頭,請求體
- 發送查看返回結果,校驗返回結果是否正確
明白了接口測試的測試步驟,那麽我們就可以來組織我們的代碼。
import requests # 接口的url url = "http://fanyi.baidu.com/v2transapi" # 接口的參數 params = { "from":"en", "to":"zh", "query": "test" } r = requests.request("post", url, params=params) # 打印返回結果 print(r.text) # 為了讓結果看的更加清楚一點,我取來翻譯的字段 import json d = json.loads(r.text) print(d[‘liju_result‘][‘tag‘])
結果:
[‘試驗‘, ‘測驗‘, ‘考驗‘, ‘化驗‘, ‘考查‘, ‘受試驗‘, ‘受測驗‘, ‘受考驗‘, ‘測得結果‘]
(結果很長,截取最後的)
修改參數再次請求;
import requests url = "http://fanyi.baidu.com/v2transapi" params = { "from":"en", "to":"zh", "query": "study" # } r = requests.request("post", url, params=params) import json d = json.loads(r.text) print(d[‘liju_result‘][‘tag‘])
結果:
[‘學習‘, ‘研究‘, ‘課題‘, ‘書房‘, ‘結論‘, ‘考慮‘, ‘沈思‘, ‘努力‘, ‘想出‘]
ps:我們看看利用工具測試該接口
接下來我們來引入unittest庫優化代碼:
import requests,unittest,json class Testbaiduapi(unittest.TestCase): def setUp(self): url = "http://fanyi.baidu.com/v2transapi" def testzhen(self): params = { "from":"en", "to":"zh", "query": "study" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u‘學習‘ in r[‘liju_result‘][‘tag‘] def testzhen1(self): params = { "from":"en", "to":"h", "query": "stud" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u‘學習‘ in r[‘liju_result‘][‘tag‘] def tearDown(self): pass if __name__==‘__main__‘: unittest.main(verbosity=2)
結果:
在python中,提供了HTMLTestRunner.py來生成測試報告,把該文件下載後,直接放到python安裝文件的lib的目錄下,
就可以導入該模塊使用了,見該實現的代碼:
import requests,unittest,json,HTMLTestRunner class Testbaiduapi(unittest.TestCase): def setUp(self): url = "http://fanyi.baidu.com/v2transapi" def testzhen(self): params = { "from":"en", "to":"zh", "query": "study" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u‘學習‘ in r[‘liju_result‘][‘tag‘] def testzhen2(self): params = { "from":"en", "to":"h", "query": "stud" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u‘學‘ in r[‘liju_result‘][‘tag‘] def tearDown(self): pass if __name__==‘__main__‘: report_dir= r‘s.html‘ re_open= open(report_dir,‘wb‘) suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi) runner=HTMLTestRunner.HTMLTestRunner( stream=re_open, title=u‘百度翻譯api接口測試報告‘, description=u‘百度翻譯api接口測試詳情‘ ) runner.run(suite)
執行後,會在當前目錄下生成測試報告,截圖如下:
其他接口的測試方法也是這個思路,
作者寄語:
前進的道路我們充滿著迷茫,
前進的每一步我們都會有收獲。
路在腳下,我們決定不了我們的出身,但是我們可以努力改變我們未來。
告別昨天失敗的自己,努力拼搏今天,成就美好明天
padf文檔分享:https://pan.baidu.com/s/1gfuXkpP
Python 接口測試(五)