python+unittest+requests實(shí)現(xiàn)接口自動(dòng)化的方法
前言:
Requests簡(jiǎn)介
Requests 是使用Apache2 Licensed 許可證的 HTTP 庫(kù)。用 Python 編寫(xiě),真正的為人類(lèi)著想。
Python 標(biāo)準(zhǔn)庫(kù)中的 urllib2 模塊提供了你所需要的大多數(shù) HTTP 功能,但是它的 API 有點(diǎn)落后了。它是為另一個(gè)時(shí)代、另一個(gè)互聯(lián)網(wǎng)所創(chuàng)建的。它需要巨量的工作,甚至包括各種方法覆蓋,來(lái)完成最簡(jiǎn)單的任務(wù)。
總之,大家建議大家用Requests吧。
Requests的官方文檔:http://cn.python-requests.org/zh_CN/latest/
通過(guò)下面方法安裝requests
pip install requests
實(shí)例實(shí)現(xiàn)步驟:
1.采用unittest把每個(gè)接口寫(xiě)成一個(gè)個(gè)測(cè)試腳本
2.一個(gè)測(cè)試腳本中包含一個(gè)接口,但是可以包含多個(gè)測(cè)試用例(即每個(gè)接口需要進(jìn)行多種情況的驗(yàn)證,接口測(cè)試用例名稱已test開(kāi)頭)
3.使用discover(),該方法會(huì)自動(dòng)根據(jù)測(cè)試目錄匹配查找測(cè)試用例文件,并且將查找到的測(cè)試組裝到測(cè)試套件中,因此可以直接通過(guò)run()方法執(zhí)行discover,大大簡(jiǎn)化了測(cè)試用例的查找和執(zhí)行
4.利用HTMLTestRunner生成測(cè)試報(bào)告
文檔結(jié)構(gòu):project項(xiàng)目文件下有以下三個(gè)文件
1.report存放測(cè)試結(jié)果
2.test_case存放測(cè)試用例
3.run_test_case.py執(zhí)行測(cè)試用例文件
案例:
1.get接口測(cè)試用例源碼
# 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接口測(cè)試用例源碼
# coding:utf-8 import requests import json import unittest class post_request(unittest.TestCase): def setUp(self): self.post_url = '..........' #根據(jù)實(shí)際接口,自己填寫(xiě) self.header = {'.......'} #根據(jù)實(shí)際內(nèi)容,自己填寫(xiě) def test_post_01(self): """正常數(shù)據(jù)""" url=self.post_url header = self.header data = {""}#根據(jù)實(shí)際內(nèi)容,自己填寫(xiě) #將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ù)實(shí)際內(nèi)容,自己填寫(xiě) r = requests.post(url, data=json.dumps(data), headers=header) print r.text def tearDown(self): pass if __name__ == "__main__": unittest.main()
3.執(zhí)行測(cè)試用例源碼
# coding=utf-8 import unittest import HTMLTestRunner import time # 相對(duì)路徑 test_dir ='./test_case' test_dir1 ='./report' discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') # 定義帶有當(dāng)前測(cè)試時(shí)間的報(bào)告,防止前一次報(bào)告被覆蓋 now = time.strftime("%Y-%m-%d %H_%M_%S") filename = test_dir1 + '/' + now + 'result.html' # 二進(jìn)制打開(kāi),準(zhǔn)備寫(xiě)入文件 fp = file(filename, 'wb') # 定義測(cè)試報(bào)告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'測(cè)試報(bào)告', description=u'用例執(zhí)行情況') runner.run(discover)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyTorch學(xué)習(xí)之軟件準(zhǔn)備與基本操作總結(jié)
這篇文章主要介紹了PyTorch學(xué)習(xí)之軟件準(zhǔn)備與基本操作總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05python實(shí)現(xiàn)scrapy爬蟲(chóng)每天定時(shí)抓取數(shù)據(jù)的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)scrapy爬蟲(chóng)每天定時(shí)抓取數(shù)據(jù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01使用Python的urllib2模塊處理url和圖片的技巧兩則
這篇文章主要介紹了使用Python的urllib2模塊處理url和圖片的兩個(gè)小技巧,分別是獲取帶有中文參數(shù)的url內(nèi)容和獲取遠(yuǎn)程圖片的大小和尺寸,需要的朋友可以參考下2016-02-02新手如何快速入門(mén)Python(菜鳥(niǎo)必看篇)
下面小編就為大家?guī)?lái)一篇新手如何快速入門(mén)Python(菜鳥(niǎo)必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06python使用matplotlib繪制圖片時(shí)x軸的刻度處理
在使用matplotlib繪制圖片時(shí),x軸的刻度可能比較密集,特別是以日期作為x軸時(shí),則最后會(huì)顯示不出來(lái)。這篇文章主要介紹了python使用matplotlib繪制圖片時(shí)x軸的刻度處理,需要的朋友可以參考下2021-08-08pycharm運(yùn)行程序時(shí)看不到任何結(jié)果顯示的解決
今天小編就為大家分享一篇pycharm運(yùn)行程序時(shí)看不到任何結(jié)果顯示的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

python 裝飾器功能以及函數(shù)參數(shù)使用介紹

Python基于回溯法子集樹(shù)模板解決數(shù)字組合問(wèn)題實(shí)例