国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì))

這篇具有很好參考價(jià)值的文章主要介紹了吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

場(chǎng)景說(shuō)明

在面試接口自動(dòng)化時(shí),經(jīng)常會(huì)問(wèn),其他接口調(diào)用的前提條件是當(dāng)前用戶必須是登錄狀態(tài),如何處理接口依賴?

在此之前我們介紹過(guò)session管理器保存會(huì)話狀態(tài)。如果接口請(qǐng)求需要攜帶token,那么又如果處理呢?

未登錄狀態(tài)下,直接請(qǐng)求充值接口的異常場(chǎng)景:

import unittest
import requests
class TestRecharge(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def test_recharge(self):
        url = 'http://127.0.0.1:8888/recharge'
        payload = {
            "member_id": 100004312,
            "amount": 80
        }
        res = requests.post(url,json=payload)
        print(res.json())
if __name__ == '__main__':
    unittest.main()

運(yùn)行結(jié)果如下:

{'code': 1003, 'msg': '未授權(quán)或token已過(guò)期'}

token處理思路

在處理之前,token靈魂三連問(wèn):

如何獲取token?
獲取的token如何管理?
其他接口如何攜帶token?

思路如下:
抽取登錄接口返回值中的token;
使用全局變量存儲(chǔ)token。token可以存到y(tǒng)aml或者json或者ini的配置文件里,以下介紹將token作為類屬性;
其他接口將token值放入請(qǐng)求頭,發(fā)送請(qǐng)求;

JsonPath基本用法

我們需要從登錄接口中提取出token,這里介紹JsonPath基本用法。

JsonPath介紹:
JsonPath為Json文檔提供了解析能力,通過(guò)使用JsonPath,你可以方便的查找節(jié)點(diǎn)、獲取想要的數(shù)據(jù),JsonPath是Json版的XPath。

JsonPath語(yǔ)法:

JsonPath 說(shuō)明
$ 文檔根元素
@ 當(dāng)前元素
.或[] 匹配下級(jí)元素
遞歸匹配所有子元素
* 通配符,匹配下級(jí)元素
[] 下標(biāo)運(yùn)算符,根據(jù)索引獲取元素,JsonPath索引從0開始
[,] 連接操作符,將多個(gè)結(jié)果拼接成數(shù)組返回,可以使用索引或別名
[start:end:step] 數(shù)據(jù)切片操作
?() 過(guò)濾表達(dá)式

這么多語(yǔ)法規(guī)范,大家會(huì)覺(jué)得一臉懵逼吧,細(xì)心的小伙伴會(huì)發(fā)現(xiàn)語(yǔ)法中 … 表示遞歸匹配所有子元素,簡(jiǎn)單粗暴,用…獲取所有匹配的子元素,通過(guò)索引拿到想要的值。

JsonPath源碼

def jsonpath(obj, expr, result_type='VALUE', debug=0, use_eval=True):
    """traverse JSON object using jsonpath expr, returning values or paths"""

obj:需要解析的對(duì)象,比如接口的返回值。expr: 匹配的表達(dá)式。

JsonPath實(shí)戰(zhàn)
以下編寫代碼進(jìn)行演示。

from jsonpath import jsonpath
# json格式結(jié)果
res = {
    "code": 0,
    "msg": "OK",
    "data": {
        "token_info": {
            "token_type": "Bearer",
            "expires_in": "2020-05-28 13:07:29",
            "token": "eyJhbGciOiJIUzUxAiJ9.eyJtZW1iZZJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNjQyNDQ5fQ.s6A7pzLILf9tqpEDAU9wIPGGLGkgKEQ6EBHq26l-eUM5seCb48DWalkE7u16iRZv3uzD5hIDFbw41Jmi9V0T_Q"
        }
    }
}
# 獲取res中的token
token = jsonpath(res,'$..token')[0]
print(token)

響應(yīng)結(jié)果為:

eyJhbGciOiJIUzUxBiJ9.eyJtZW1iZZJfaWQiOpEwMDA1MTMxNSwiZXhwIjoxNTkwNjQyNDQ5fQ.s6A7pzLILf9tqpEDAU9wIPGGLGkgKEQ6EBHq26l-eUM5seCb48SW

token 依賴實(shí)例

①在config/setting.py配置文件中,配置全局的域名或IP。

class DevConfig():
    # 項(xiàng)目的域名或IP
    host='http://127.0.0.1:8888'
config = DevConfig()

②在config/config.yaml文件中,存入登錄賬號(hào)。
config.yaml

user:
  mobile_phone: '155********'
  pwd: '12345678'

③在項(xiàng)目根目錄下,新建文件夾middleware,文件夾下新建文件helper.py,用于處理token。

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

④首先編寫登錄接口,返回接口數(shù)據(jù)。
helper.py

from common.requests_handler import RequestsHandler
from config.setting import config
from common.yaml_handler import yaml_data


def login():
    """登錄,接口返回token"""
    req = RequestsHandler()
    res = req.visit('post', config.host+'/login', json=yaml_data['user'])
    return res
print(login())

運(yùn)行結(jié)果如下:

{
    'code': 0,
    'msg': 'OK',
    'data': {
        'token_info': {
            'token_type': 'Bearer',
            'expires_in': '2020-05-26 13:31:41',
            'token': 'eyJhbGciOiJIUpUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNDcxMTAxfQ.4QDNdQ-Wyecvpv7yRnMlCx1ZXpAlb8vpohxHht5OfNcjGn_yTaISyhmn7OMzjMGlz68sJ_uFbCh2NhIaO2p_Lg'
        }
    }
}

⑤接下來(lái)編寫函數(shù),獲取登錄接口返回值并提取token和token_type進(jìn)行拼接 。這里要使用jsonpath模塊提取返回的token和token_type。

helper.py

def save_token():
    """保存token信息"""
    res = login()
    token = jsonpath(res,'$..token')[0]
    token_type = jsonpath(res,'$..token_type')[0]
    token = " ".join([token_type, token])
    return token
print(save_token())

運(yùn)行結(jié)果如下:

Bearer eyJhbGciOJIPzUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwN

⑥最后定義類,將token作為類屬性,整體代碼如下:helper.py

from common.requests_handler import RequestsHandler
from config.setting import config
from common.yaml_handler import yaml_data
from jsonpath import jsonpath


def login():
    """登錄,返回token信息"""
    req = RequestsHandler()
    res = req.visit('post', config.host+'/login', json=yaml_data['user'])
    return res
def save_token():
    """保存token信息"""
    res = login()
    token = jsonpath(res,'$..token')[0]
    token_type = jsonpath(res,'$..token_type')[0]
    token = " ".join([token_type, token])
    Context.token = token
    return token
class Context:
    """將token作為類屬性"""
    token = ''


if __name__ == '__main__':
    print(save_token())

運(yùn)行結(jié)果如下:

Bearer eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNDcz

⑦充值接口攜帶token請(qǐng)求。

import unittest
import requests


from middleware.helper import Context, save_token
class TestRecharge(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def test_recharge(self):
        save_token()
        token = Context.token
        url = 'http://127.0.0.1:88888/recharge'
        payload = {
            "member_id": 100051315,
            "amount": 80
        }
        res = requests.post(url,json=payload)
        print(res.json())


if __name__ == '__main__':
    unittest.main()

運(yùn)行結(jié)果為:

{
    'code': 0,
    'msg': 'OK',
    'data': {
        'leave_amount': 240.0,
        'mobile_phone': '155********',
    }
}
下面是我整理的2023年最全的軟件測(cè)試工程師學(xué)習(xí)知識(shí)架構(gòu)體系圖

一、Python編程入門到精通

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

二、接口自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

三、Web自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

四、App自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

五、一線大廠簡(jiǎn)歷

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

六、測(cè)試開發(fā)DevOps體系

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

七、常用自動(dòng)化測(cè)試工具

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

八、JMeter性能測(cè)試

吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì)),軟件測(cè)試,接口自動(dòng)化測(cè)試,自動(dòng)化測(cè)試從入門到精通,軟件測(cè)試,自動(dòng)化測(cè)試,python自動(dòng)化測(cè)試,自動(dòng)化測(cè)試框架,接口自動(dòng)化測(cè)試,接口自動(dòng)化,軟件測(cè)試工程師

九、總結(jié)(尾部小驚喜)

不畏風(fēng)雨,砥礪前行,奮斗是實(shí)現(xiàn)夢(mèng)想的道路。堅(jiān)持不懈,追逐遠(yuǎn)方,用毅力創(chuàng)造輝煌的人生。相信自己的力量,燃燒熱情,每一次努力都是邁向成功的跳板,只要心懷勇氣,必將綻放屬于自己的壯麗華章。

擁抱挑戰(zhàn),綻放光芒,奮斗是成就輝煌的征程。砥礪前行,腳踏實(shí)地,用汗水鑄就成功的堅(jiān)固基石。相信自己的能力,不屈不撓,每一次努力都是逼近目標(biāo)的勇敢邁步。

心懷夢(mèng)想,勇往直前,奮斗是砥礪前行的旅程。追逐輝煌,披荊斬棘,用汗水澆灌成就的花朵。相信自我價(jià)值,不畏困難,每一次努力都是向成功逼近的堅(jiān)實(shí)步伐。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-643316.html

到了這里,關(guān)于吐血整理,Python接口自動(dòng)化測(cè)試-接口關(guān)聯(lián)依賴處理(詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python接口自動(dòng)化測(cè)試實(shí)戰(zhàn)詳解

    Python接口自動(dòng)化測(cè)試實(shí)戰(zhàn)詳解

    接口自動(dòng)化測(cè)試是指通過(guò)編寫程序來(lái)模擬用戶的行為,對(duì)接口進(jìn)行自動(dòng)化測(cè)試。Python是一種流行的編程語(yǔ)言,它在接口自動(dòng)化測(cè)試中得到了廣泛應(yīng)用。下面詳細(xì)介紹Python接口自動(dòng)化測(cè)試實(shí)戰(zhàn)。 在Python接口自動(dòng)化測(cè)試中,我們可以使用很多開源的測(cè)試框架,例如unittest、pytest和

    2024年02月06日
    瀏覽(21)
  • 從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化

    從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化

    總體框架 PO模式、DDT數(shù)據(jù)驅(qū)動(dòng)、驅(qū)動(dòng) 框架技術(shù)選擇 框架運(yùn)行結(jié)果 各用例對(duì)應(yīng)的定義方式(PO/DDT) 測(cè)試執(zhí)行結(jié)果 從零開始搭建項(xiàng)目 一、開發(fā)環(huán)境搭建 二、新建項(xiàng)目 三、基礎(chǔ)功能實(shí)現(xiàn) 1. 配置功能實(shí)現(xiàn)(Conf) 2. 日志功能實(shí)現(xiàn)(Log) 3. 讀取EXCEL實(shí)現(xiàn)(data) 4. 郵件發(fā)送實(shí)

    2024年02月07日
    瀏覽(30)
  • 從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化)

    從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化)

    總體框架 PO模式、DDT數(shù)據(jù)驅(qū)動(dòng)、驅(qū)動(dòng) 框架技術(shù)選擇 框架運(yùn)行結(jié)果 各用例對(duì)應(yīng)的定義方式(PO/DDT) 測(cè)試執(zhí)行結(jié)果 從零開始搭建項(xiàng)目 一、開發(fā)環(huán)境搭建 二、新建項(xiàng)目 三、基礎(chǔ)功能實(shí)現(xiàn) 1. 配置功能實(shí)現(xiàn)(Conf) 2. 日志功能實(shí)現(xiàn)(Log) 3. 讀取EXCEL實(shí)現(xiàn)(data) 4. 郵件發(fā)送實(shí)

    2024年02月04日
    瀏覽(35)
  • Python自動(dòng)化測(cè)試——postman,jmeter接口測(cè)試

    Python自動(dòng)化測(cè)試——postman,jmeter接口測(cè)試

    關(guān)于眾所postman,jmeter,做自動(dòng)化測(cè)試的我想對(duì)這兩個(gè)詞并不陌生。大家都知道postman用來(lái)做接口測(cè)試很方便,下面我們就用一些例子來(lái)演示一下它該如何進(jìn)行接口測(cè)試: 首先我們來(lái)介紹一下接口測(cè)試的概念: 1、什么是接口測(cè)試? 接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試。接

    2024年04月27日
    瀏覽(31)
  • Python+Requests實(shí)現(xiàn)接口自動(dòng)化測(cè)試

    Python+Requests實(shí)現(xiàn)接口自動(dòng)化測(cè)試

    一般對(duì)于自動(dòng)化的理解,有兩種方式的自動(dòng)化。 第一,不需要寫代碼,完全由工具實(shí)現(xiàn),這種方式的工具一般是公司自己研發(fā)的,方便黑盒測(cè)試人員使用。這種工具的特點(diǎn)是學(xué)習(xí)成本低,方便使用,但是通用性不強(qiáng),也就是換了一家公司,就很有可能無(wú)法使用之前的工具。

    2024年01月16日
    瀏覽(22)
  • (基于python)簡(jiǎn)單實(shí)現(xiàn)接口自動(dòng)化測(cè)試

    (基于python)簡(jiǎn)單實(shí)現(xiàn)接口自動(dòng)化測(cè)試

    本文從一個(gè)簡(jiǎn)單的登錄接口測(cè)試入手,一步步調(diào)整優(yōu)化接口調(diào)用姿勢(shì),然后簡(jiǎn)單討論了一下接口測(cè)試框架的要點(diǎn),最后介紹了一下我們目前正在使用的接口測(cè)試框架pithy。期望讀者可以通過(guò)本文對(duì)接口自動(dòng)化測(cè)試有一個(gè)大致的了解。 為什么要做接口自動(dòng)化測(cè)試? 在當(dāng)前互聯(lián)網(wǎng)

    2024年02月08日
    瀏覽(17)
  • Python自動(dòng)化測(cè)試——在線生成接口文檔

    Python自動(dòng)化測(cè)試——在線生成接口文檔

    目錄 前言 API 文檔導(dǎo)入生成 在項(xiàng)目詳情頁(yè)點(diǎn)擊左側(cè) API 功能,進(jìn)入 API 管理頁(yè)面,直接點(diǎn)擊下拉框選擇導(dǎo)入 API? 自動(dòng)生成文檔 通過(guò)使用接口文檔工具 Eolink 演示如何自動(dòng)生成文檔 使用 API Factory 產(chǎn)品根據(jù)數(shù)據(jù)庫(kù)生成 API 文檔 結(jié)語(yǔ) 接口文檔是項(xiàng)目開發(fā)中必需的說(shuō)明文檔,接口文

    2024年02月07日
    瀏覽(21)
  • 簡(jiǎn)單實(shí)現(xiàn)接口自動(dòng)化測(cè)試(基于python)

    簡(jiǎn)單實(shí)現(xiàn)接口自動(dòng)化測(cè)試(基于python)

    本文從一個(gè)簡(jiǎn)單的登錄接口測(cè)試入手,一步步調(diào)整優(yōu)化接口調(diào)用姿勢(shì),然后簡(jiǎn)單討論了一下接口測(cè)試框架的要點(diǎn),最后介紹了一下我們目前正在使用的接口測(cè)試框架pithy。期望讀者可以通過(guò)本文對(duì)接口自動(dòng)化測(cè)試有一個(gè)大致的了解。 為什么要做接口自動(dòng)化測(cè)試? 在當(dāng)前互聯(lián)網(wǎng)

    2024年02月13日
    瀏覽(24)
  • 基于Python 簡(jiǎn)易實(shí)現(xiàn)接口測(cè)試自動(dòng)化

    基于Python 簡(jiǎn)易實(shí)現(xiàn)接口測(cè)試自動(dòng)化

    目錄 實(shí)現(xiàn)思路 統(tǒng)籌腳本 請(qǐng)求封裝? 日志封裝 結(jié)果比對(duì) 結(jié)果郵件 用例獲取及數(shù)據(jù)格式化 請(qǐng)求url轉(zhuǎn)換 測(cè)試用例excel結(jié)構(gòu) 測(cè)試報(bào)告 郵件接收結(jié)果 資料獲取方法 使用excel管理用例用例信息,requests模塊發(fā)送http請(qǐng)求,實(shí)現(xiàn)了記錄日志,郵件發(fā)送測(cè)試報(bào)告的功能 目錄結(jié)構(gòu)如下: 下

    2024年02月13日
    瀏覽(20)
  • 用Python搞定接口自動(dòng)化測(cè)試:輕松實(shí)現(xiàn)RPC協(xié)議接口測(cè)試

    用Python搞定接口自動(dòng)化測(cè)試:輕松實(shí)現(xiàn)RPC協(xié)議接口測(cè)試

    每天進(jìn)步一點(diǎn)點(diǎn),關(guān)注我哦,每天分享測(cè)試技術(shù)文章,文末有福利! 目錄:導(dǎo)讀 前言 一、什么是RPC 二、RPC框架 三、基于grpc框架服務(wù)的接口測(cè)試 01創(chuàng)建一個(gè)grpc服務(wù)接口 02調(diào)用grpc接口客戶端 03接口框架中適配grpc封裝 四、基于dubbo框架服務(wù)的接口測(cè)試 01、dubbo服務(wù)管理簡(jiǎn)單使

    2024年02月01日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包