偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用Python快速搭建接口自動(dòng)化測(cè)試腳本實(shí)戰(zhàn)總結(jié)

開(kāi)發(fā) 前端
本文將介紹如何使用python快速進(jìn)行http/https接口自動(dòng)化測(cè)試腳本搭建,實(shí)現(xiàn)自動(dòng)請(qǐng)求、獲取結(jié)果、數(shù)據(jù)對(duì)比分析,導(dǎo)出結(jié)果到Excel等功能,包括python的requests、pandas、openpyxl等庫(kù)的基本使用方法。

?測(cè)試需求介紹

通常,在我們的項(xiàng)目中,我們的接口測(cè)試需求一般都是構(gòu)造不同的請(qǐng)求數(shù)據(jù),然后發(fā)送請(qǐng)求到接口,拿到接口返回后,對(duì)返回的字段進(jìn)行提取和校驗(yàn),最后將結(jié)果存放在excel表格中方便查閱。接口一般是http或https請(qǐng)求,發(fā)送的結(jié)構(gòu)一般是json body或json結(jié)合一些文件附件,請(qǐng)求的返回結(jié)果都是json格式,我們的測(cè)試case可以用Excel或者數(shù)據(jù)庫(kù)保存,結(jié)果可以保存在數(shù)據(jù)庫(kù)或者直接存在Excel中,下面將具體拆解需求及逐步介紹實(shí)現(xiàn)過(guò)程。

請(qǐng)求體的定制和發(fā)送請(qǐng)求

構(gòu)造每次發(fā)送的請(qǐng)求內(nèi)容和向接口自動(dòng)發(fā)送請(qǐng)求是構(gòu)造自動(dòng)化測(cè)試腳本的核心,我們實(shí)現(xiàn)這一步驟主要是使用python 的requests庫(kù),下面詳細(xì)做一下詳細(xì)介紹。

1.發(fā)送簡(jiǎn)單的http post請(qǐng)求

發(fā)送請(qǐng)求前,我們需要明確請(qǐng)求的body,我們的body為json,具體內(nèi)容如下:

我們可以把這個(gè)作為模板保存為text.json文件作為模板,這樣可以直接讀取為后面構(gòu)造請(qǐng)求體做準(zhǔn)備。這一步我們可以這樣處理,這里借助了yaml包,可以把json轉(zhuǎn)換為字典,也可以使用python自帶的json,效果一樣。

獲取到了請(qǐng)求體模板后,我們得到了變量request_body,這是一個(gè)字典類(lèi)型的數(shù)據(jù),我們就可以對(duì)其進(jìn)行參數(shù)化,以此構(gòu)造我們需要的請(qǐng)求體了,例如我們要對(duì)每次請(qǐng)求的請(qǐng)求id、用戶(hù)名、以及text的內(nèi)容做修改,可以這樣操作,左邊是需要修改的字段,右邊是我們需要的變量。

構(gòu)造好要發(fā)送的數(shù)據(jù),就可以準(zhǔn)備發(fā)送請(qǐng)求了,在發(fā)送請(qǐng)求之前我們還有一點(diǎn)工作要做,那就是設(shè)置請(qǐng)求接口的一些參數(shù)和一些請(qǐng)求頭的定制,這里我們簡(jiǎn)單舉例如下:

我們定制了請(qǐng)求參數(shù)和請(qǐng)求頭,就可以發(fā)送類(lèi)似如下URL的請(qǐng)求:

我們?cè)侔阎皹?gòu)造好的body加上,再用requests庫(kù)的post方法發(fā)送請(qǐng)求,這里用到了方法中的data參數(shù),它接收的是一個(gè)json,因此在發(fā)送之前對(duì)之前的字典變量還需做下轉(zhuǎn)換再發(fā)送,這里用python自帶的json庫(kù),使用其中的dumps方法即可將字典轉(zhuǎn)換為json:

至此,一個(gè)基本的http post請(qǐng)求就發(fā)送完成了,注意到,我們有一個(gè)名為 r 的 Response 對(duì)象。我們可以從這個(gè)對(duì)象中獲取所有我們想要的信息。

2.更加復(fù)雜的請(qǐng)求

前面我們介紹了最簡(jiǎn)單的http post請(qǐng)求,在此基礎(chǔ)上,我們有時(shí)還需要一些更加復(fù)雜的請(qǐng)求,比如帶一個(gè)文件,https請(qǐng)求等,下面簡(jiǎn)單講解一下如何實(shí)現(xiàn):

比如我們想要發(fā)送一個(gè)帶有格式為p?cm的音頻文件到接口中,并且接口是https的。

注意到,發(fā)送https請(qǐng)求需要做ssl認(rèn)證,在方法中使用verify參數(shù),這個(gè)參數(shù)默認(rèn)值是True,一般不需要驗(yàn)證的話(huà),需要將這個(gè)置為False。還有一個(gè)需要注意的地方是,我們?cè)O(shè)置了一個(gè)timeout,防止請(qǐng)求過(guò)程超時(shí),導(dǎo)致程序無(wú)響應(yīng)。

對(duì)請(qǐng)求返回?cái)?shù)據(jù)進(jìn)行關(guān)鍵數(shù)據(jù)抓取

在發(fā)送請(qǐng)求的步驟里我們有一個(gè)名為 r 的 Response 對(duì)象。我們可以從這個(gè)對(duì)象中獲取所有我們想要的信息。

獲取內(nèi)容有如下幾種方法,我們可以根據(jù)自己的需要來(lái)使用:

得到的一般為json格式的文本:

我們可以對(duì)json進(jìn)行轉(zhuǎn)換,使用json.loads方法,將一個(gè)json對(duì)象轉(zhuǎn)換為python的字典,這樣方便獲取其中我們想要的一些字段,這一步很簡(jiǎn)單,就不做詳細(xì)介紹了。

如何執(zhí)行case和存儲(chǔ)測(cè)試結(jié)果

首先我們看一下我們的case,我們的case是使用Excel進(jìn)行編寫(xiě)的,具體如下:

1080×112 39.8 KB

如何讀取Excel,獲取其中的case呢?我們使用了python中的pandas庫(kù)。這個(gè)庫(kù)很強(qiáng)大,有很多處理數(shù)據(jù)的方法,我們?cè)谶@只使用其中讀取excel的方法,具體代碼如下:

這樣我們就將表格數(shù)據(jù)轉(zhuǎn)換了一個(gè)list,每個(gè)list中是一個(gè)字典格式,也就是我們的case,具體格式如下:

這樣做的目的是我們可以將表頭和每個(gè)case做一個(gè)映射,形成一個(gè)字典,這樣可以更加靈活操作case以及做數(shù)據(jù)對(duì)比。

有了case list,加上之前我們發(fā)送請(qǐng)求和獲取結(jié)果的步驟就可以進(jìn)行批量接口測(cè)試了,這里使用一個(gè)for循環(huán)就可以批量跑起來(lái)了:

我們將每次返回的結(jié)果,按照case的格式拼接成一個(gè)字典,就是我們的結(jié)果數(shù)據(jù),將每個(gè)結(jié)果字典再存儲(chǔ)到一個(gè)列表中,就得到了整個(gè)的結(jié)果字典列表,我們將它命名為case_result_list,這時(shí),我們?cè)俅问褂胮andas庫(kù),可以把這個(gè)列表轉(zhuǎn)換為dataframe格式:

之后我們將dataframe保存為excel文件:

至此,我們已經(jīng)完成了從獲取case到發(fā)請(qǐng)求獲取結(jié)果,保存結(jié)果的全部流程。

對(duì)結(jié)果數(shù)據(jù)進(jìn)行標(biāo)識(shí)處理

經(jīng)過(guò)以上的操作,我們已經(jīng)完成了批量發(fā)請(qǐng)求,獲取結(jié)果的過(guò)程,如果我們需要對(duì)結(jié)果單元格做一些處理,比如標(biāo)紅加粗等操作,使測(cè)試結(jié)果中的錯(cuò)誤信息更加明顯,需要怎么操作呢?這里我們使用了python中的openpyxl庫(kù)。這個(gè)庫(kù)也是可以對(duì)Excel表格進(jìn)行讀寫(xiě)操作,并且可以插入一些公式和樣式。我們?cè)谶@里使用的是樣式操作,我們根據(jù)單元格中的數(shù)據(jù)對(duì)結(jié)果進(jìn)行標(biāo)紅加粗操作:

最后得到的測(cè)試結(jié)果如下,通過(guò)使用openpyxl,我們還可以在結(jié)果中追加行,增加一些測(cè)試結(jié)果的統(tǒng)計(jì)信息,如case數(shù)、error數(shù),錯(cuò)誤率正確率等。

1080×224 61.6 KB

以上就是一次完整的接口自動(dòng)化測(cè)試腳本搭建,實(shí)現(xiàn)自動(dòng)請(qǐng)求、獲取結(jié)果、數(shù)據(jù)對(duì)比分析,導(dǎo)出結(jié)果到Excel等功能,每一個(gè)步驟都比較簡(jiǎn)單,可以快速搭建出滿(mǎn)足需求的自動(dòng)化測(cè)試腳本,方面快速驗(yàn)證服務(wù)端接口。

其中使用的requests庫(kù)、pandas庫(kù)是在python常用的庫(kù),功能很強(qiáng)大,后續(xù)大家可以參考其官方文檔進(jìn)行深入了解。

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2024-05-13 16:29:56

Python自動(dòng)化

2013-03-13 11:34:05

自動(dòng)化測(cè)試Selenium.Net測(cè)試

2022-12-26 12:30:28

接口測(cè)試

2022-08-05 22:15:26

Python自動(dòng)化測(cè)試

2024-11-21 15:24:49

2024-08-16 21:51:42

2024-11-11 16:55:54

2019-07-17 09:29:09

Python自動(dòng)化接口

2022-07-04 09:00:36

Playwright自動(dòng)化測(cè)試工具

2011-05-31 17:35:45

測(cè)試自動(dòng)化QTP

2018-05-11 08:29:10

Python自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)

2018-05-11 13:39:05

PythonCSV接口測(cè)試

2012-03-30 15:52:51

ibmdw

2021-04-29 09:40:32

測(cè)試IDEAirtest

2023-09-13 11:40:12

2023-12-25 09:52:32

2010-07-15 13:21:46

Perl多進(jìn)程

2011-06-08 17:15:46

QTP腳本

2012-02-27 17:34:12

Facebook自動(dòng)化

2021-09-03 09:56:18

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)