国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python+unittest+requests實現(xiàn)接口自動化的方法

2020-02-15 23:49:08
字體:
供稿:網(wǎng)友

前言:

Requests簡介

Requests 是使用Apache2 Licensed 許可證的 HTTP 庫。用 Python 編寫,真正的為人類著想。

Python 標準庫中的 urllib2 模塊提供了你所需要的大多數(shù) HTTP 功能,但是它的 API 有點落后了。它是為另一個時代、另一個互聯(lián)網(wǎng)所創(chuàng)建的。它需要巨量的工作,甚至包括各種方法覆蓋,來完成最簡單的任務(wù)。

總之,大家建議大家用Requests吧。

Requests的官方文檔:http://cn.python-requests.org/zh_CN/latest/

通過下面方法安裝requests

pip install requests 

實例實現(xiàn)步驟:

1.采用unittest把每個接口寫成一個個測試腳本

2.一個測試腳本中包含一個接口,但是可以包含多個測試用例(即每個接口需要進行多種情況的驗證,接口測試用例名稱已test開頭)

3.使用discover(),該方法會自動根據(jù)測試目錄匹配查找測試用例文件,并且將查找到的測試組裝到測試套件中,因此可以直接通過run()方法執(zhí)行discover,大大簡化了測試用例的查找和執(zhí)行

4.利用HTMLTestRunner生成測試報告

文檔結(jié)構(gòu):project項目文件下有以下三個文件

1.report存放測試結(jié)果
2.test_case存放測試用例
3.run_test_case.py執(zhí)行測試用例文件

案例:

1.get接口測試用例源碼

# coding:utf-8import requestsimport unittestclass 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):    passif __name__ == "__main__":  unittest.main() 

2.post接口測試用例源碼

# coding:utf-8import requestsimport jsonimport unittestclass post_request(unittest.TestCase):  def setUp(self):    self.post_url = '..........' #根據(jù)實際接口,自己填寫    self.header = {'.......'} #根據(jù)實際內(nèi)容,自己填寫  def test_post_01(self):    """正常數(shù)據(jù)"""    url=self.post_url    header = self.header    data = {""}#根據(jù)實際內(nèi)容,自己填寫    #將data序列化為json格式數(shù)據(jù),傳遞給data參數(shù)    r = requests.post(url, data=json.dumps(data), headers=header)    print r.text  def test_post_02(self):    """異常數(shù)據(jù)"""    url=self.post_url    header = self.header    data = {""}#根據(jù)實際內(nèi)容,自己填寫    r = requests.post(url, data=json.dumps(data), headers=header)    print r.text   def tearDown(self):    passif __name__ == "__main__":  unittest.main()   

3.執(zhí)行測試用例源碼

# coding=utf-8import unittestimport HTMLTestRunnerimport 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'用例執(zhí)行情況')runner.run(discover)             
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 木里| 寿光市| 巴马| 浦东新区| 东光县| 鄂州市| 新安县| 高青县| 嘉义市| 明星| 鹤壁市| 易门县| 来安县| 喜德县| 通化县| 凤阳县| 香河县| 泾阳县| 西青区| 崇礼县| 肇东市| 三河市| 鲁山县| 神木县| 施秉县| 肇州县| 西青区| 金寨县| 巴中市| 明星| 长海县| 绥宁县| 肇庆市| 连平县| 长沙县| 庐江县| 高淳县| 富顺县| 翁牛特旗| 兴安县| 修武县|