最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python + Requests + Unittest接口自動化測試實例分析

 更新時間:2019年12月12日 11:39:41   作者:timen_xu  
這篇文章主要介紹了Python + Requests + Unittest接口自動化測試,結(jié)合具體實例形式分析了Python使用Requests與Unittest模塊實現(xiàn)接口自動化測試相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python + Requests + Unittest接口自動化測試。分享給大家供大家參考,具體如下:

1. 介紹下python的requests模塊

Python Requests快速入門 :http://cn.python-requests.org/zh_CN/latest/

想必會Python基礎(chǔ)的小伙伴們一看就懂了

2. Requests接口自動化測試:

2.1 如何利用這么利器進(jìn)行接口測試,請看小demo:

# -*- coding:utf-8 -*
import requests
def test():
  url = "http://120.24.239.**:9080/user/app/get_sys_time.do" #測試的接口url
  headers = {'content-type': 'application/json'}
  r = requests.get(url=url, headers=headers)
  return r.json()
if __name__ == "__main__":
  test()

在進(jìn)行接口測試的過程中對傳入的參數(shù)進(jìn)行邊界值測試、錯誤推導(dǎo)測試、等價類測試等測試方法進(jìn)行測試。有時安全性考慮,會在請求接口url上添加session的東東,這個時候不怕,直接把登錄接口返回碼中的session提取出來,放在post請求的header里,例如:

# -*- coding:utf-8 -*
import requests
def test():
  url = "http://120.24.239.**:9080/user/app/login.do" #登錄的接口
  headers = {'content-type': 'application/json'}
  r = requests.get(url=url, headers=headers)
  return r.json()
def test_have_session(url):
  cookie = "JSESSIONID=" + "".join(test().get("JSESSIONID")) #利用登錄接口獲取JSESSIONID
  headers = {'content-type': 'application/xml', 'Cookie': cookie}
  r = requests.post(url, headers=headers)
  return r.json()
if __name__ == "__main__":
  url = ""  #測試的接口url
  test_have_session(url)

2.2 做完所有接口的接口測試后,就要編寫接口自動化了,不可能開發(fā)每次去修改接口你又得手動的去測試一遍,特別是產(chǎn)品上線了,需要到所有的接口進(jìn)行一遍測試,這個時候有了接口自動化就方便多了,接下來看下一個縮減版的接口自動化測試demo:

# -*- coding:utf-8 -*
# 測試報告郵件內(nèi)容
text = ""
# 用例統(tǒng)計
num_success = 0
num_fail = 0
# 測試通過
def test_success():
  global num_success
  num_success += 1
  print_out(u"測試結(jié)果:通過\n")
# 測試不通過
def test_fail(txt):
  global num_fail
  num_fail += 1
  print_out(u"測試結(jié)果:不通過 \n錯誤信息: " + txt + "\n")
# 郵件內(nèi)容寫入 & 客戶端輸出
def print_out(message):
  global text
  text += "\n" + message
  print message
# 返回值判斷
def test_result(result, code):
  if result.get("status") == code:
    test_success()
    return "pass"
  else:
    txt = u"期望返回值:" + str(code) + u" 實際返回值:" + str(result.get("status"))
    test_fail(txt)
    return "fail"

def test_interface():
  # 初始化測試起始時間
  start_time = datetime.datetime.now()
  # 構(gòu)造測試集
  suite = unittest.TestSuite()
  suite.addTest(MyTestSuite("test_login"))  # 登陸
  suite.addTest(MyTestSuite("test_employees")) # 員工管理
  suite.addTest(MyTestSuite("test_department")) # 部門管理
  suite.addTest(MyTestSuite("test_work_sys")) # 工作日歷管理
  suite.addTest(MyTestSuite("test_holiday")) # 節(jié)假日管理
  suite.addTest(MyTestSuite("test_queryAp")) # 智能終端管理
  suite.addTest(MyTestSuite("test_edit_info")) # 企業(yè)信息管理 & 個人信息
  suite.addTest(MyTestSuite("test_data")) # 每日數(shù)據(jù)報表 & 月度數(shù)據(jù)報表
  # 執(zhí)行測試
  runner = unittest.TextTestRunner()
  runner.run(suite)
  # 測試執(zhí)行時間計算
  end_time = datetime.datetime.now()
  total_use_case = u"執(zhí)行用例總數(shù):" + str(num_success + num_fail) + \
           u"\t通過數(shù):" + str(num_success) + \
           u"\t不通過數(shù):" + str(num_fail)
  total_time = u"\t總共耗時:" + str((end_time-start_time).seconds) + u"秒"
  print_out(total_use_case + total_time)
  # 發(fā)生郵件測試報告
  Send_email.send_email(text)

例子中缺失很多判斷按具體項目測試的接口去進(jìn)行判斷,整體的框架是這樣子的,在接口很多的項目中,可以分文件進(jìn)行編寫,方便后期接口測試用例的修改,在我現(xiàn)在公司的產(chǎn)品中總共有69個接口,將這69個接口我進(jìn)行了分類去管理,如果需要將接口測試腳本放服務(wù)器去跑,需要添加try….except,將出現(xiàn)的錯誤信息報出來,利用smtplib發(fā)送錯誤信息到自己的郵箱就好了。

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Pandas數(shù)據(jù)分析固定時間點(diǎn)和時間差

    Pandas數(shù)據(jù)分析固定時間點(diǎn)和時間差

    這篇文章主要介紹了Pandas數(shù)據(jù)分析固定時間點(diǎn)和時間差,文章未日澳主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python 離線工作環(huán)境搭建的方法步驟

    Python 離線工作環(huán)境搭建的方法步驟

    這篇文章主要介紹了Python 離線工作環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中if語句的基本格式實例代碼

    Python中if語句的基本格式實例代碼

    在Python中,if語句用于根據(jù)條件執(zhí)行不同的代碼塊。本文詳細(xì)介紹了Python中if語句的基本格式使用方法及實例代碼,有需要的同學(xué)可以參考閱讀
    2023-05-05
  • Python實現(xiàn)簡單的語音識別系統(tǒng)

    Python實現(xiàn)簡單的語音識別系統(tǒng)

    這篇文章主要介紹了Python實現(xiàn)簡單的語音識別系統(tǒng),具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • python 編碼規(guī)范整理

    python 編碼規(guī)范整理

    這篇文章主要介紹了python 編碼規(guī)范整理,需要的朋友可以參考下
    2018-05-05
  • Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法

    Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法

    在處理數(shù)據(jù)分析和數(shù)據(jù)科學(xué)項目時,經(jīng)常會使用到Python中的pandas庫來進(jìn)行數(shù)據(jù)操作和分析,其中DataFrame是pandas庫中最重要的數(shù)據(jù)結(jié)構(gòu)之一,這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法,需要的朋友可以參考下
    2024-08-08
  • Python Thread虛假喚醒概念與防范詳解

    Python Thread虛假喚醒概念與防范詳解

    這篇文章主要介紹了Python Thread虛假喚醒概念與防范,虛假喚醒是一種現(xiàn)象,它只會出現(xiàn)在多線程環(huán)境中,指的是在多線程環(huán)境下,多個線程等待在同一個條件上,等到條件滿足時,所有等待的線程都被喚醒,但由于多個線程執(zhí)行的順序不同
    2023-02-02
  • Python的NumPy使用之?dāng)?shù)組過濾

    Python的NumPy使用之?dāng)?shù)組過濾

    這篇文章主要介紹了Python的NumPy使用之?dāng)?shù)組過濾,在 NumPy中,我們使用布爾索引列表來過濾數(shù)組布爾索引列表是與數(shù)組中的索引相對應(yīng)的布爾值列表,需要的朋友可以參考下
    2023-07-07
  • 用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程

    用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程

    這篇文章主要介紹了用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程,包括單位格式轉(zhuǎn)換、分類匯總等基本操作,需要的朋友可以參考下
    2015-03-03
  • 詳解Python NumPy中矩陣和通用函數(shù)的使用

    詳解Python NumPy中矩陣和通用函數(shù)的使用

    在NumPy中,矩陣是ndarray的子類,與數(shù)學(xué)概念中的矩陣一樣,NumPy中的矩陣也是二維的,可以使用 mat 、 matrix 以及 bmat 函數(shù)來創(chuàng)建矩陣。本文將詳細(xì)講解NumPy中矩陣和通用函數(shù)的使用,感興趣的可以了解一下
    2022-06-06

最新評論

巢湖市| 湾仔区| 营口市| 井陉县| 敦煌市| 福安市| 东方市| 贵定县| 南木林县| 广宁县| 永宁县| 宁晋县| 汽车| 称多县| 中西区| 凤山市| 广河县| 岳普湖县| 聂拉木县| 仁寿县| 鹿邑县| 西乌珠穆沁旗| 疏附县| 增城市| 乌拉特中旗| 依兰县| 新营市| 天台县| 黔西| 乐平市| 玉门市| 乌审旗| 大余县| 太白县| 赞皇县| 微山县| 灵山县| 思茅市| 博湖县| 镇赉县| 满洲里市|