校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Python接口自動化淺析登錄接口測試實戰

Python接口自動化淺析登錄接口測試實戰

熱門標簽:宿遷星美防封電銷卡 ai電銷機器人源碼 百度地圖標注沒有了 西藏房產智能外呼系統要多少錢 長沙高頻外呼系統原理是什么 地圖標注審核表 ai電話機器人哪里好 外呼并發線路 湛江智能外呼系統廠家

在上一篇Python接口自動化測試系列文章:Python接口自動化淺析unittest單元測試原理,主要介紹單元測試,unittest模塊特性、大致流程、源碼及實戰例子。

以下主要介紹接口概念、接口用例設計及登錄接口測試實戰。

1、什么是接口?

接口:檢測外部系統與系統之間以及內部各個子系統之間的交互點。

通俗來說,接口就是連接前后端的橋梁,接口測試可以簡單理解為脫離了前端的功能測試。

一個又一個的接口就對應功能測試內一個又一個的功能。

但注意,一個功能有可能不是一個接口就能實現。

那么,接口測試和功能測試的區別在哪呢?

其實功能測試就是在頁面上輸入我們的參數值,點點點;

而接口測試沒有前端,而是通過接口文檔上的調用地址、請求參數等,校驗返回的結果值,

也就是說,接口可以看成沒有界面的功能測試。

因此,可以分析,系統間的接口包含三部分:輸入、處理邏輯、輸出。

2、如何開展接口測試?

接口測試流程如下:

1.需求評審,熟悉業務和需求;

2.開發提供API接口文檔;

3.根據開發交付的接口文檔,編寫接口測試用例;

4.接口測試用例評審;

5.開始執行接口測試;

6.提交測試報告;

3、如何設計接口用例?

1.獲取接口文檔

一般公司的開發會提供接口文檔,沒有接口文檔的自行抓包吧(摸摸頭),不知道怎么抓包的小伙伴,可以看看之前的Fiddler系列文章。

Fiddler

接口文檔是我們測試時最重要的一個依據,一個規范的接口文檔至少包括:

1.接口說明;

2.調用URL;

3.請求方法(get、post等);

4.請求參數、參數類型、請求參數說明等;

5.返回參數說明;

如下為一個簡單的登錄接口文檔:

2.分析接口文檔的接口,提取測試點

接口測試用例跟常規的功能測試用例基本一樣,

可以從接口功能測試、接口業務測試、接口性能測試、接口安全測試等角度考慮。

接口的邏輯校驗,可以參照接口流程圖來進行設計,一個分支需要作為一個場景去進行測試,需要覆蓋到流程圖里面所有的邏輯分支。

接口的參數校驗,可以參照接口文檔中的參數定義去進行驗證,需要覆蓋到所有參數對應的枚舉值以及錯誤碼等信息。

3.接口測試用例設計思路

接口功能的關注點是:

1.接口參數正確與否:接口傳入的參數是否有正確填寫;

2.接口參數缺失:接口參數有必填、選填參數,傳參時,測試參數缺失對結果的影響;

3.接口參數邊界值:比如用戶名、密碼有長度限制,需要測試不同長度的參數對結果的影響;

4.接口參數類型:比如接口文檔中用戶名為String類型,測試傳入其他數據類型對結果的影響。

4.接口測試其他范圍

接口業務測試

主要是從業務的角度出發,把接口組合成一條業務鏈,比如登錄之后充值,在數據庫中金額是否正確等等

接口的性能測試

是指接口是否滿足業務的要求,比如業務要求系統可以滿足50個人同時下單,那么下單這個接口就要可以承擔50 TPS,目前業內一般使用JMETER去做接口性能測試,jmeter接口性能后續會單獨在Jmeter系列文章里介紹。

接口安全測試

接口的安全性主要圍繞Token、Timestamp和Sign三個機制展開設計,保證接口的數據不會被篡改和重復調用。

注意:本文主要涉及接口功能測試,相信做過功能測試的童鞋,設計接口測試用例也是沒問題的。

4、接口測試用例實戰

以下,我們以登錄接口進行實戰。

隨著代碼模塊越來越多,混在一起,雜亂無章,這時我們考慮架構分層了,上篇文章:Python接口自動化之requests請求封裝,封裝的requests請求類,每個用例都要調用,可以放在公共模塊里。

在項目下新建一個文件夾common

放入請求模塊requests_handler.py

requests_handler.py

import requests
class RequestsHandler:
    def __init__(self):
        """session管理器"""
        self.session = requests.session()
    def visit(self, method, url, params = None, data= None, json= None, headers= None):
        result = self.session.request(method,url,params=params,data=data,json=json,headers=headers)
        try:
            # 返回json結果
            return result.json()
        except Exception:
            return 'not json'
    def close_session(self):
        self.session.close()

編寫登錄接口用例,調用封裝的請求類。

登錄用例,新建一個test_cases文件夾,用來存放用例模塊。

test_Login.py

import unittest
from common.requests_handler import RequestsHandler
class LoginTest(unittest.TestCase):
    def setUp(self):
        # 請求類實例化
        self.req = RequestsHandler()
    def tearDown(self):
        self.req.close_session()
    def test_login_success(self):
        login_url = 'http://127.0.0.1:8000/user/login'
        payload = {
            "mobile_phone": "1530272****",
            "pwd": "12345678"
        }
    
        res = self.req.visit('post',login_url,json=payload)
        self.assertEqual(0, res['code'])
if __name__ == '__main__':
    unittest.main()

運行結果為:

Ran 1 test in 0.213s
OK

對于用例的一些總結:

setUp, tearDown

前置條件,后置條件,setUp實例化,在運行測試用例前獲取session管理器, tearDown,在測試用例執行結束后關閉session管理器。

對于斷言

小伙伴們可能不知道到底用返回結果中的哪個字段斷言。個人意見,如果code、msg比較詳細的話,可以利用code、msg其中一個來斷言,當然code、msg一起做斷言也可以,甚至你覺得返回結果中某個數據符合你的預期,也是可以拿來斷言,斷言手段是靈活多變的,自行選擇最優方案。

小伙伴們看到總結,退出微信,打開王者榮耀,一氣呵成,其實還沒完呢,我們寫了正向用例,還有異常用例也寫兩條,更多的異常用例可以自行擴展下。

import unittest
from common.requests_handler import RequestsHandler
class LoginTest(unittest.TestCase):
    def setUp(self):
        # 請求類實例化
        self.req = RequestsHandler()
    def tearDown(self):
        # 關閉session
        self.req.close_session()
    def test_login_success(self):
        """
        正確手機號,正確密碼
        """
        login_url = 'http://127.0.0.1:8000/user/login'
        payload = {
            "mobile_phone": "1530272****",
            "pwd": "12345678"
        }
 
        res = self.req.visit('post',login_url,json=payload)
        # 根據請求結果中的code進行斷言
        self.assertEqual(0, res['code'])
    def test_phone_is_null(self):
        """
        手機號為空,密碼正確
        """
        login_url = 'http://127.0.0.1:8000/user/login'
        payload = {
            "mobile_phone": "",
            "pwd": "12345678"
        }
       
        res = self.req.visit('post', login_url, json=payload)
        # 根據返回結果中的msg進行斷言
        self.assertEqual("手機號碼為空", res['msg'])
    def test_pwd_is_null(self):
        """
        正確用戶名,密碼為空
        """
        login_url = 'http://127.0.0.1:8000/user/login'
        payload = {
            "mobile_phone": "1530272****",
            "pwd": ""
        }
    
        res = self.req.visit('post', login_url, json=payload)
        # 根據返回結果中的msg進行斷言
        self.assertEqual("密碼為空", res['msg'])
if __name__ == '__main__':
    unittest.main()

測試結果為:

Ran 3 tests in 0.259s
OK

以上代碼如下痛點:

  • 用例和數據未分離,維護成本大。可以數據與測試腳本分離,使用Excel存放測試用例,方便維護。
  • 仔細研究發現正向用例、異常用例,只是傳入的數據不一樣,其他都是通用
    這種情況下,我們可以引入ddt數據驅動,減少代碼量。

到此這篇關于Python接口自動化淺析登錄接口測試實戰的文章就介紹到這了,更多相關Python接口自動化登錄接口測試內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python接口自動化淺析數據驅動原理
  • Python接口自動化淺析unittest單元測試原理
  • python使用pytest接口自動化測試的使用
  • python+requests+pytest接口自動化的實現示例
  • python接口自動化測試數據和代碼分離解析

標簽:大同 海南 普洱 盤錦 寧夏 漯河 南平 林芝

巨人網絡通訊聲明:本文標題《Python接口自動化淺析登錄接口測試實戰》,本文關鍵詞  Python,接口,自動化,淺析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python接口自動化淺析登錄接口測試實戰》相關的同類信息!
  • 本頁收集關于Python接口自動化淺析登錄接口測試實戰的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    天天综合日日夜夜精品| 欧美日韩大陆一区二区| 欧美久久一二三四区| 国产亚洲自拍一区| 日韩精品视频网| 99久久99久久免费精品蜜臀| 日韩精品一区二区三区在线播放 | 欧美日韩一区高清| 国产欧美一区二区精品久导航| 亚洲小少妇裸体bbw| 风间由美一区二区av101| 日韩一区二区三区在线| 亚洲一区二区三区在线播放| 粉嫩av一区二区三区粉嫩| 欧美一区二区三区免费观看视频| 亚洲男人天堂av网| aaa国产一区| 国产欧美日韩精品一区| 国产米奇在线777精品观看| 日韩午夜激情电影| 亚洲444eee在线观看| 欧美性三三影院| 亚洲综合清纯丝袜自拍| 欧洲一区二区三区在线| 亚洲一区精品在线| 欧美日韩一级视频| 三级欧美在线一区| 91精品免费在线| 麻豆精品国产91久久久久久| 日韩视频国产视频| 免播放器亚洲一区| 欧美成人性战久久| 韩国精品一区二区| 国产色综合久久| 成人激情午夜影院| 亚洲欧美另类小说| 欧美性视频一区二区三区| 亚洲第一av色| 欧美一区二区三区视频| 三级亚洲高清视频| 欧美精品一区二区蜜臀亚洲| 国产久卡久卡久卡久卡视频精品| 国产欧美日韩在线观看| 99精品视频中文字幕| 亚洲伦在线观看| 欧美高清www午色夜在线视频| 日本成人在线视频网站| 久久综合资源网| 丰满少妇在线播放bd日韩电影| 国产精品区一区二区三区| 99九九99九九九视频精品| 亚洲福利视频导航| 久久久91精品国产一区二区三区| 成人a区在线观看| 亚洲一区影音先锋| 欧美精品一区二区三| 99久久国产综合精品麻豆| 午夜国产精品影院在线观看| 亚洲精品一线二线三线| 91色视频在线| 久久国产精品露脸对白| 综合激情网...| 日韩欧美中文字幕一区| 成人黄色小视频在线观看| 亚洲宅男天堂在线观看无病毒| 欧美一区二区三区日韩| 成人午夜又粗又硬又大| 三级久久三级久久久| 中文字幕不卡在线| 欧美精品 日韩| 国产91清纯白嫩初高中在线观看| 亚洲精选视频免费看| 精品奇米国产一区二区三区| 91麻豆精品视频| 久久精品国产一区二区三 | 91免费版pro下载短视频| 日本在线不卡一区| 中文字幕亚洲欧美在线不卡| 5月丁香婷婷综合| 99久久精品99国产精品| 韩国三级在线一区| 亚洲成av人综合在线观看| 中文字幕av资源一区| 欧美一二三区在线| 欧美亚洲一区二区在线观看| 成人性色生活片| 国产一区二区调教| 日韩在线一区二区| 亚洲黄色尤物视频| 国产欧美日韩在线| 欧美绝品在线观看成人午夜影视| 成人妖精视频yjsp地址| 蜜桃av噜噜一区二区三区小说| 一区二区三区四区亚洲| 国产蜜臀97一区二区三区| 日韩亚洲欧美成人一区| 欧美图区在线视频| 色综合天天做天天爱| 99久久综合99久久综合网站| 国产精品小仙女| 国产一区二区三区黄视频| 毛片基地黄久久久久久天堂| 亚州成人在线电影| 又紧又大又爽精品一区二区| 亚洲视频资源在线| 亚洲素人一区二区| 综合色天天鬼久久鬼色| 亚洲视频在线一区观看| 亚洲欧美视频在线观看| 亚洲欧美综合在线精品| 国产精品天天看| 亚洲欧洲精品一区二区精品久久久 | 一区二区三区成人在线视频| 国产精品麻豆网站| 国产精品国产三级国产普通话99| 久久综合九色综合97_久久久| 精品免费日韩av| 久久免费视频一区| 欧美韩国一区二区| 综合久久给合久久狠狠狠97色| 亚洲欧美另类小说视频| 亚洲一区在线电影| 亚洲成a人v欧美综合天堂| 日韩二区三区在线观看| 青青草国产精品97视觉盛宴| 精品中文av资源站在线观看| 国产一区二区不卡在线| 国产成人av一区二区三区在线 | 欧美国产精品久久| 中日韩免费视频中文字幕| 亚洲三级在线看| 亚洲高清免费在线| 久草在线在线精品观看| 国产乱子伦视频一区二区三区 | 国产片一区二区| 国产精品国产自产拍高清av| 亚洲精品免费播放| 免费在线看成人av| 成人免费三级在线| 欧美在线观看一区| 欧美sm极限捆绑bd| 国产精品传媒视频| 一区二区三区中文字幕精品精品| 婷婷综合另类小说色区| 精品一二三四区| 97久久久精品综合88久久| 欧美人妇做爰xxxⅹ性高电影| 欧美成人三级电影在线| 中文字幕一区二区5566日韩| 一区二区高清免费观看影视大全 | 亚洲猫色日本管| 久久精品国产精品亚洲综合| 成人激情电影免费在线观看| 9191国产精品| 国产精品久久久久久久久快鸭 | 亚洲日本韩国一区| 日本欧洲一区二区| 99精品视频一区二区| 欧美一级夜夜爽| 亚洲日本一区二区| 狠狠色丁香九九婷婷综合五月| 国产乱码精品一区二区三区忘忧草 | 中文字幕日韩一区二区| 日本欧美韩国一区三区| 99久久综合色| 久久精品亚洲一区二区三区浴池| 一区二区国产视频| 成人亚洲一区二区一| 精品三级在线看| 婷婷亚洲久悠悠色悠在线播放| 福利一区二区在线观看| 欧美一级日韩一级| 亚洲女与黑人做爰| 国产成人免费高清| 欧美videofree性高清杂交| 亚洲成在线观看| 色婷婷亚洲婷婷| 国产精品妹子av| 国产在线国偷精品产拍免费yy| 欧美精品日韩精品| 亚洲一区在线观看免费| 成人激情小说网站| 国产农村妇女毛片精品久久麻豆| 秋霞电影网一区二区| 在线免费观看成人短视频| 成人欧美一区二区三区在线播放| 国产精品亚洲成人| 久久九九久精品国产免费直播| 日韩主播视频在线| 欧美在线啊v一区| 国产精品久久久久桃色tv| 国产麻豆精品一区二区| 久久免费的精品国产v∧| 久久精品国产网站| 日韩精品一区在线观看| 精品影院一区二区久久久| 欧美大白屁股肥臀xxxxxx| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩1234| 免费在线观看不卡|