Requests簡介html
Requests 是使用 Apache2 Licensed 許可證的 HTTP 庫。用 Python 編寫,真正的爲人類着想。python
Python 標準庫中的 urllib2 模塊提供了你所須要的大多數 HTTP 功能,可是它的 API 有點落後了。它是爲另外一個時代、另外一個互聯網所建立的。它須要巨量的工做,甚至包括各類方法覆蓋,來完成最簡單的任務。apache
總之,你們建議你們用Requests吧。json
Requests的官方文檔:http://cn.python-requests.org/zh_CN/latest/post
經過下面方法安裝requests測試
pip install requests url
1.採用unittest把每一個接口寫成一個個測試腳本
2.一個測試腳本中包含一個接口,可是能夠包含多個測試用例(即每一個接口須要進行多種狀況的驗證,接口測試用例名稱已test開頭)
3.使用discover(),該方法會自動根據測試目錄匹配查找測試用例文件,而且將查找到的測試組裝到測試套件中,所以能夠直接經過run()方法執行discover,大大簡化了測試用例的查找和執行
4.利用HTMLTestRunner生成測試報告spa
文檔結構:project項目文件下有如下三個文件code
1.get接口測試用例源碼htm
# coding:utf-8 import requests import unittest class get_request(unittest.TestCase): def setUp(self): self.get_url = 'https://www.baidu.com/' def test_post_01(self): url=self.get_url r = requests.get(url) print r.text def tearDown(self): pass if __name__ == "__main__": unittest.main()
2.post接口測試用例源碼
# coding:utf-8 import requests import json import unittest class post_request(unittest.TestCase): def setUp(self): self.post_url = '..........' #根據實際接口,本身填寫 self.header = {'.......'} #根據實際內容,本身填寫 def test_post_01(self): """正常數據""" url=self.post_url header = self.header data = {""}#根據實際內容,本身填寫 #將data序列化爲json格式數據,傳遞給data參數 r = requests.post(url, data=json.dumps(data), headers=header) print r.text def test_post_02(self): """異常數據""" url=self.post_url header = self.header data = {""}#根據實際內容,本身填寫 r = requests.post(url, data=json.dumps(data), headers=header) print r.text def tearDown(self): pass if __name__ == "__main__": unittest.main()
3.執行測試用例源碼
# coding=utf-8 import unittest import HTMLTestRunner import time # 相對路徑 test_dir ='./test_case' test_dir1 ='./report' discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') # 定義帶有當前測試時間的報告,防止前一次報告被覆蓋 now = time.strftime("%Y-%m-%d %H_%M_%S") filename = test_dir1 + '/' + now + 'result.html' # 二進制打開,準備寫入文件 fp = file(filename, 'wb') # 定義測試報告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'測試報告', description=u'用例執行狀況') runner.run(discover)