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

首頁 > 編程 > Python > 正文

python+unittest+requests實現接口自動化的方法

2020-01-04 13:58:45
字體:
來源:轉載
供稿:網友

前言:

Requests簡介

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

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

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

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

通過下面方法安裝requests

pip install requests 

實例實現步驟:

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

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

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

4.利用HTMLTestRunner生成測試報告

文檔結構:project項目文件下有以下三個文件

python,unittest,requests,接口自動化

1.report存放測試結果
2.test_case存放測試用例
3.run_test_case.py執行測試用例文件

案例:

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 = '..........' #根據實際接口,自己填寫    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):    passif __name__ == "__main__":  unittest.main()   

3.執行測試用例源碼

# 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'用例執行情況')runner.run(discover) 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴山县| 乐东| 阿城市| 武邑县| 河津市| 喜德县| 广宗县| 永登县| 嘉峪关市| 镇赉县| 汉寿县| 和平县| 襄城县| 无为县| 永仁县| 海口市| 漯河市| 隆子县| 金门县| 洛川县| 平江县| 光泽县| 行唐县| 福建省| 仙桃市| 大兴区| 利辛县| 莲花县| 通榆县| 财经| 玉龙| 云梦县| 明光市| 嫩江县| 金昌市| 富阳市| 汕头市| 彭泽县| 建昌县| 承德市| 金昌市|