真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python+requests如何實(shí)現(xiàn)接口自動(dòng)化

這篇文章給大家分享的是有關(guān)python+requests如何實(shí)現(xiàn)接口自動(dòng)化的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、華鎣ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的華鎣網(wǎng)站制作公司

利用python和第三方庫requests進(jìn)行接口自動(dòng)化測(cè)試(python+requests)

第三方庫requests簡單介紹

Requests 是用Python語言編寫,基于 urllib,采用 Apache2 Licensed 開源協(xié)議的 HTTP 庫。它比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP 測(cè)試需求。更重要的一點(diǎn)是它支持 Python3 。

大概步驟

Request是第三方庫,需要手動(dòng)安裝:CMD安裝即可----命令:pip install requests

在pycharm先導(dǎo)入requests第三方庫,代碼—import requests

發(fā)送請(qǐng)求—http.get請(qǐng)求:requests.get(‘https://api.github.com/events’)

發(fā)送請(qǐng)求—http.post請(qǐng)求:requests.post(‘http://httpbin.org/post’, data = {‘key’:‘value’})

構(gòu)建URL參數(shù)等

結(jié)合Python進(jìn)行返回參數(shù)進(jìn)行驗(yàn)證

運(yùn)行即可(請(qǐng)求失敗可抓包查看發(fā)送參數(shù)是否有誤)

詳細(xì)介紹

以下主要介紹兩種常用http請(qǐng)求:get和post,以及delete

下圖為本次編寫代碼測(cè)試的用例

具體代碼:

第一步:安裝完后直接導(dǎo)入requests使用

#導(dǎo)入requests

import requests

第二步:利用Python+requests編寫代碼構(gòu)建請(qǐng)求

#登錄接口--post請(qǐng)求

這里需要注意,除了返回接口內(nèi)容,還需要返回cookies,因?yàn)楹竺娴牟僮餍枰玫降卿浬矸輼?biāo)識(shí)

def Login(user,passw):

payload = {

'username': test,

'password': 123456

}

# data參數(shù) 就是構(gòu)造消息體的

response = requests.post("http://localhost/XXXX",

data=payload)

# 獲取結(jié)果,返回給調(diào)用者

retDict = response.json()

# 在控制臺(tái)打印出結(jié)果

print(retDict)

#返回結(jié)果,調(diào)用時(shí)需要用到

return retDict, response.cookies

#添加課程接口--post請(qǐng)求

這里需要注意,請(qǐng)求參數(shù)需要加上cookies,因?yàn)楹竺娴牟僮餍枰玫降卿浬矸輼?biāo)識(shí)

def add_course(action,name,desc,dis,sessionid):

re={'action':action,

'data':'''

{

"name": "%s",

"desc": "%s",

"display_idx": "%s"

}

'''% (name,desc,dis)

}

rs=requests.post("http://localhost/XXXX",data=re,cookies={'sessionid': sessionid})

re=rs.json()

print(re)

return re

#列出課程接口--get請(qǐng)求

def list_course(sessionid):

parm={

'action' :'list_course',

'pagenum':1,

'pagesize':20

}

# he = {"Content-Type": "application/json"}

rs=requests.get("http://localhost/XXXX",params=parm,cookies={'sessionid': sessionid})

liechu=rs.json()

print(liechu)

return liechu

#刪除課程接口--delete請(qǐng)求

def delete_course(courseid,sessionid):

payload = {

'action': 'delete_course',

'id': f'{courseid}'

}

response = requests.delete("http://localhost/XXXX/",

data=payload,

cookies={'sessionid': sessionid})

r = response.json()

pprint.pprint(r)

return r無錫婦科醫(yī)院 http://www.bhnfk.com

第三步:利用Python對(duì)requests返回的參數(shù)進(jìn)行驗(yàn)證

#因?yàn)檫@塊代碼是新建了另一個(gè)Python文件編寫。所以這里需要先導(dǎo)入上面的Python文件才可以調(diào)用里面的函數(shù)

from jiakouzudonghua import aba

#導(dǎo)入隨機(jī)數(shù)函數(shù)

import random

# 利用寫好的登錄接口進(jìn)行登錄

# loginRet保存登錄接口返回是否登錄成功的參數(shù),cookies保存登錄成功返回的cookie

loginRet,cookies = aba.Login('auto','sdfsdfsdf')

#使用if判斷是否登錄成功,可直接使用assert驗(yàn)證

if loginRet["retcode"] == 0:

print('登錄成功')

else:

print('登錄失敗')

# 記錄下sessionid

sessionid =cookies['sessionid']

#這里課程使用了隨機(jī)數(shù),最大程度確保每次運(yùn)行不會(huì)創(chuàng)建到同名課程

classname=('課程'+str(random.randint(0,99999999999)))

# 第一次先列出課程,為后面比較做準(zhǔn)備

coureListBefore = list_course(sessionid)['retlist']

# 添加一門課程,且使用assert進(jìn)行驗(yàn)證,對(duì)則不會(huì)反悔信息,錯(cuò)則返回錯(cuò)誤信息

retDict = add_course('classname','php語言','2',sessionid)

assert retDict['retcode'] == 0

#也可用if進(jìn)行驗(yàn)證

# if retDict['retcode'] == 0:

# print('添加課程成功')

# else:

# raise Exception('添加課程失敗')

# 第二次再列出課程

coureListAfter = list_course(sessionid)['retlist']

#使用len計(jì)算添加課程前和添加課程后的課程數(shù)量,然后相減等于1則證明成功,也可直接取返回的課程數(shù)量total進(jìn)行驗(yàn)證

createCount = len(coureListAfter) - len(coureListBefore)

assert createCount == 1

# 取出,多出來的一門課程對(duì)象

newcourse = None

for one in coureListAfter:

if one not in coureListBefore:

newcourse = one

break

# 檢查是否是剛剛添加的課程

assert newcourse!=None

assert newcourse['name']=='classname'

assert newcourse['desc']=='php語言'

assert newcourse['display_idx']==2

# 清除環(huán)境操作,刪除剛剛添加的課程

delete_course(newcourse['id'],sessionid)

print('\n========= test case pass =============')

得出控制臺(tái)運(yùn)行結(jié)果。

感謝各位的閱讀!關(guān)于“python+requests如何實(shí)現(xiàn)接口自動(dòng)化”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


網(wǎng)頁題目:python+requests如何實(shí)現(xiàn)接口自動(dòng)化
新聞來源:http://weahome.cn/article/pjoesp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部