最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第九章 接口測試:jmeter、postman

2023-06-14 14:34 作者:littersho  | 我要投稿

一,接口測試流程,怎么做

第一步:通過分析API文檔和需求文檔提取接口清單?。

第二步:針對接口清單,做單接口測試和關(guān)聯(lián)接口測試。

接口文檔--接口用例--工具腳本設(shè)計--執(zhí)行--bug--回歸

二,用什么工具:jmeter、postman

它們算是同類型工具,可能界面操作不太一樣,我可能習(xí)慣用Jmeter,而且,postman能做的Jmeter都能做,但Jmeter能做的postman不一定能做

Jmeter最大的特點就是組件化,使用Jmeter時, 默認(rèn)自帶一個組件也就是 TestPlan測試計劃, 然后在TestPlan下新增Thread group線程組, 再去添加對應(yīng)協(xié)議請求Sampler即可。

Postman是更容易上手,界面更簡潔。主要就是針對HTTP請求,其中Collection組件等價于TestPlan測試計劃, 允許添加子文件夾等價于TestSuite測試套件,用于存儲所有已編寫好的腳本,每個請求都是一個用例腳本。

從功能支持來看,明顯Jmeter支持的請求更多,還能做性能測試,開源免費


三,Jmeter主要元件

1、測試計劃:是使用 JMeter 進(jìn)行測試的起點,它是其它 JMeter測試元件的容器

2、線程組:代表一定數(shù)量的用戶,它可以用來模擬用戶并發(fā)發(fā)送請求。實際的請求內(nèi)容在Sampler中定義,它被線程組包含。

3、配置元件:維護(hù)Sampler需要的配置信息,并根據(jù)實際的需要修改請求的內(nèi)容。

4、前置處理器:負(fù)責(zé)在請求之前工作,常用來修改請求的設(shè)置

5、定時器:負(fù)責(zé)定義請求之間的延遲間隔。

6、取樣器(Sampler):是性能測試中向服務(wù)器發(fā)送請求,記錄響應(yīng)信息、響應(yīng)時間的最小單元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一種不同類型的sampler 可以根據(jù)設(shè)置的參數(shù)向服務(wù)器發(fā)出不同類型的請求。

7、后置處理器:負(fù)責(zé)在請求之后工作,常用獲取返回的值。

8、斷言:用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的。

9、監(jiān)聽器:負(fù)責(zé)收集測試結(jié)果,同時確定結(jié)果顯示的方式。

10、邏輯控制器:可以自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結(jié)合使用可以模擬復(fù)雜的請求序列。

四, 接口測試怎么測的

使用Jmeter進(jìn)行接口測試的基本步驟如下:

1.測試計劃

2.線程組

3.HTTP Cookie管理器

4.Http請求默認(rèn)值

5.Sampler(HTTP請求)

6.斷言

7.監(jiān)聽器(查看結(jié)果樹、圖形結(jié)果、聚合報告等)

jmeter-http接口測試腳本

jmeter進(jìn)行http接口測試的主要步驟(在測試計劃中 1.添加線程組 2.添加http請求 3.在http請求中寫入接口的URL,路徑,請求方式,參數(shù) 4.添加查看結(jié)果樹 5.調(diào)用接口,查看返回值)

?①

打開Jmeter 安裝包,進(jìn)入\bin 中,找到"jmeter.bat", 點擊打開即可。

在下圖打開的Jmeter 頁面中,右鍵“測試計劃” -> “添加” -> "Threads(Users)" / 線程(用戶) -> “線程組”, 建立線程組。

右鍵“線程組” -> “添加” -> “Sample”?-> “HTTP請求”, 輸入“服務(wù)器名稱或IP”(注意: “服務(wù)器名稱或IP”中不用輸入http://, 請求時會自動加入),對應(yīng)的端口號(https協(xié)議默認(rèn)的端口號是443,http協(xié)議默認(rèn)端口號是80)。選擇請求方式, 輸入對應(yīng)的路徑,添加參數(shù)及值。

右鍵“線程組” -> “添加” -> “監(jiān)聽器”?-> “察看結(jié)果數(shù)”, 添加“察看結(jié)果數(shù)”, 以察看運行后的結(jié)果,


建立線程組,HTTP請求和聚合報告,在這一個設(shè)置當(dāng)中把url地址,請求類型這些配置好,參數(shù)寫好,線程組里面寫上線程數(shù),比如50個用戶就配50,去壓3分鐘,去看聚合報告中的數(shù)據(jù),比如錯誤率,吞吐量,平均時間,在不斷的去加用戶量,調(diào)這個線程數(shù),看吞吐量(服務(wù)器每秒處理)的變化,達(dá)到峰值,那就可以得到它的性能指標(biāo)

持續(xù)施壓? 負(fù)載測試 在頁面上添加線程的時候,是否持續(xù),無限循環(huán)勾上,下面有個設(shè)置時間,3600秒 1個小時嘛,持續(xù)跑,持續(xù)加壓,看下服務(wù)器怎么跑

得出什么結(jié)果

一,接口文檔怎么去分析

①接口包含什么內(nèi)容:

接口:前端(發(fā)送的請求,傳參)服務(wù)器(接受并返回數(shù)值)

(前端)請求(url地址,請求方式,請求頭信息,請求體信息,參數(shù)),(服務(wù)器)響應(yīng)(響應(yīng)狀態(tài)碼,響應(yīng)數(shù)據(jù)格式,響應(yīng)信息頭,響應(yīng)的內(nèi)容以及異常的返回信息和錯誤代碼)


接口三要素:地址,參數(shù),返回值

請求地址:輸入的是url地址

輸入:參數(shù)值

返回值:返回界面(提供結(jié)果)

②需要分析多個接口之間彼此的關(guān)聯(lián)和關(guān)系


Soapui主要有請求地址,請求參數(shù),請求方式get、post

1, 根據(jù)接口文檔,

2, 什么類型的請求,接口的IP地址,路徑地址,協(xié)議,請求方式

3, 工具:postman?

4, 傳正確的值,看接口能不能跑通,數(shù)據(jù)落地,

5, 異常值,空值,看返回結(jié)果

二,沒有接口文檔怎么辦?

利用抓包工具

三,接口用例設(shè)計,關(guān)注點,和功能測試用例的區(qū)別

?接口測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。?

1、先看接口文檔,弄懂業(yè)務(wù)邏輯;

2、保證接口功能正常運行,輸入正確的參數(shù)是否能得到正確的輸出參數(shù);

3、考慮輸入?yún)?shù)的異常情況(必填項、長度、類型、空值、增減參數(shù)個數(shù)),接口是否做了相應(yīng)處理;

4、接口之間的調(diào)用鏈路是否正確,看上一個接口輸出是否作為輸入?yún)?shù)傳入下一個接口中;

5、數(shù)據(jù)庫入庫的數(shù)據(jù)是否正確;

6、考慮安全性:有些設(shè)計安全的接口是否做了驗簽加密、當(dāng)我們構(gòu)造一些 SQL 注入的數(shù)據(jù)是否能正常處理;

7、考慮性能:接口測試完成后,進(jìn)行相應(yīng)的性能測試以及壓力測試,看看頻繁訪問接口后承載能力如何,各個數(shù)據(jù)指標(biāo)是否滿足要求。

四,你之前的公司多少接口,寫了多少用例,就一個接口對應(yīng)多少用例

我們當(dāng)時的項目接口我記得有200個左右

正常情況下,一個接口可以寫出5-12條以上的測試用例

五,如何判斷接口返回數(shù)據(jù)正確

人工判斷

自動判斷--斷言方式

六,具有代表性的接口例子

接口測試中印象深刻的bug

bug描述,原因

七,涉及到第三方接口,怎么測試

能直接調(diào)用的

不能直接調(diào)用的,mock數(shù)據(jù)

八,請求參數(shù)是加密的,怎么處理

(1)寫個函數(shù)或者方法,把要加密的參數(shù)使用這個函數(shù)過濾一遍,等于就是說把數(shù)據(jù)丟進(jìn)去,加密了之后,再通過這個加密好的數(shù)據(jù)傳輸過去就可以。

(2)至于用什么加密算法,這個要根據(jù)產(chǎn)品和自己的業(yè)務(wù)場景和需求不管是AES或者公鑰私鑰也好看自己的選擇。

(3)也可能是編碼的問題,就直接用base64碼把需要傳輸加密的東西通過base64返回base64碼,然后再放進(jìn)去,然后再進(jìn)行傳輸。

(4)這是編碼不是加密,真的要加密的話,首先把要用的參數(shù)加好密之后再被傳輸出去,傳輸?shù)倪^程中把傳輸?shù)臄?shù)據(jù)進(jìn)行一次加密和封裝之后再發(fā)送過去。

(5)用jmeter做接口測試用post-processor加beanshell進(jìn)行加密解密,再從日志中查找參數(shù),然后具體的加密算法要看需求。

(6)每個測試工具提供的加密算法是不一樣的,工具不一樣加密算法也是不一樣的。

九,涉及到短信驗證碼,圖片驗證碼的接口,怎么處理

1、找開發(fā)去要一個萬能的驗證碼

2、讓開發(fā)屏蔽掉驗證碼

3、調(diào)用獲取驗證碼的接口

1.短信驗證碼:輸入手機號,獲得驗證碼,一般驗證碼為數(shù)字。需要獲取從后端生成的原始數(shù)據(jù),可以通過數(shù)據(jù)庫查詢等

2.圖形驗證碼:網(wǎng)頁中登錄使用的驗證碼,一般是服務(wù)器后端生成的驗證碼,將驗證碼繪制成圖片,采用圖像識別等方法

3.復(fù)雜驗證碼:需要調(diào)用人工代碼平臺



一,鑒權(quán)方式,對token,session,cookie理解和區(qū)別

目的都是一樣的:鑒權(quán)和認(rèn)證。總結(jié)下來就是:session 是空間換時間,token 是時間換空間。

二,?接口測試中需要用到上一個接口的信息,怎么辦?

參數(shù)傳遞,把上個接口的返回數(shù)據(jù)里的依賴數(shù)據(jù)提取出來設(shè)置為變量然后再引用

用csv文件,去把讀取到一個文件里面,如果臨時一個參數(shù),設(shè)置為一個參數(shù),下個接口就調(diào)用這個參數(shù)

比如登錄token


“請求” 右鍵->添加--后置處理器--json提取器

作用:json提取器,把接口返回的數(shù)據(jù)提取出來--登錄--token,作為變量

①Names of created variables

由英文分號 ;分隔的變量名稱,這些變量分別用于存儲對應(yīng)JSON-PATH表達(dá)提取的結(jié)果(必須匹配JSON-PATH表達(dá)式數(shù)量)。

eg:login_token

②JSON Path Expressions

由分號分號 ;分割的JSON-PATH表達(dá)式 (必須匹配變量的數(shù)量)

eg:?$.data.token

下個接口請求時引用

eg:路徑后添加&token=${login_token}

③Default Values

如果對應(yīng)變量的JSON-PATH表達(dá)式不返回任何結(jié)果時,對應(yīng)變量的默認(rèn)值,由英文分號 ;分隔(必須匹配變量的數(shù)量)

④Match Numbers

對于每個JSON-PATH表達(dá)式,如果表達(dá)式查詢到多個結(jié)果時,你可以選擇提取那個值作為變量值。

  • 0?表示隨機(匹配數(shù)字的默認(rèn)值)

  • -1?提取所有結(jié)果,這些結(jié)果將存儲到名為<variable name>_N的變量(N取值從1到提取結(jié)果的數(shù)量)

  • X?表示提取第X個結(jié)果。如果第X個結(jié)果不存在,則不會返回任何值,直接使用對應(yīng)默認(rèn)值作為變量。

這些匹配數(shù)字必須使用英文分號相隔,且匹配JSON-PATH表達(dá)式的數(shù)量。如果不配置匹配數(shù)字,默認(rèn)使用0作為每個表達(dá)式的默認(rèn)值。

注意:不管對應(yīng)的JSON-PATH表達(dá)式能否查詢到結(jié)果,程序都會將結(jié)果數(shù)(如果查詢不到結(jié)果則設(shè)置為 0 )存儲到變量 <variable name>_matchNr中

⑤Compute concatenation var

如果勾選,則表示如果對應(yīng)表達(dá)式查詢到多個結(jié)果,插件將使用 , 連接這些值并存儲為命名為<variable name>_ALL的變量中。

三,測試片段是做什么的?

1,右鍵“測試計劃”?->添加--->測試片段

2,導(dǎo)出測試片段 .jmt文件

3,其他人使用時右鍵“線程組”?->添加--->邏輯控制器--->include控制器--->瀏覽文件名,選擇導(dǎo)出的測試片段

測試片段就是對于用例的描述,模塊化的封裝,分模塊測試 時重復(fù)使用的功能

四,多個測試環(huán)境,接口用例復(fù)用

不同環(huán)境間接口一般是不變的,服務(wù)器地址會有變化

解決方案:自定義變量,將服務(wù)器名稱或ip ,端口號 看成公共參數(shù)

1,“線程組”?->添加--配置元件--用戶定義的變量,將對應(yīng)的公共數(shù)據(jù)以變量的形式,統(tǒng)一維護(hù)起來

用戶定義的變量:名稱? ? ? 值? ? ? ? ?描述

eg: 名稱??host??值?member.bilibili.com??描述?服務(wù)器名稱或ip

? ? ? 名稱??port??值 80?描述?端口

2,服務(wù)器名稱或ip 輸入?${host} ,端口號??輸入?${port}?

3,變量改動后,接口調(diào)用自動引用最新的數(shù)據(jù)

五,多組數(shù)據(jù)測試,數(shù)據(jù)驅(qū)動測試(DDT)

同一個接口,正反向多組數(shù)據(jù)測試,(正常,異常,空值)

需要的數(shù)據(jù)集:

1、測試執(zhí)行需要的參數(shù)變量?

2、結(jié)果判斷的預(yù)期值

初級方法,手動修改參數(shù)值,然后執(zhí)行測試

解決方案:可以把這些數(shù)據(jù)統(tǒng)一定義在一個文件里面,自動的去調(diào)用

1,按照特定規(guī)則寫在csv文件,去讀取(比如每一行 代表一組數(shù)據(jù),參數(shù)與參數(shù)之間用逗號分隔),也可以從數(shù)據(jù)庫中導(dǎo)出csv文件,然后將文件用于jmeter進(jìn)行多次調(diào)用

2,“線程組”?->添加--配置元件--csv data set config

①文件名:選擇csv文件

②文件編碼:UTF-8

③變量名稱:

④分隔符:

⑤忽略首行:

實現(xiàn)功能:jmeter去讀取csv文件,把數(shù)據(jù)動態(tài)定義為變量

3,“線程組”?->添加--邏輯控制器--循環(huán)控制器

循環(huán)次數(shù):多少數(shù)據(jù)就寫多少次

實現(xiàn)功能:反復(fù)執(zhí)行某件事,循環(huán)發(fā)起多次接口調(diào)用

如果不添加,不管csv文件中有多少組數(shù)據(jù),都只會執(zhí)行一次

注意:將csv數(shù)據(jù)文件設(shè)置和接口請求,斷言放在循環(huán)控制器下

六,結(jié)果驗證,添加斷言

“請求” 右鍵->添加--斷言--響應(yīng)斷言/json斷言/XML斷言

最常用的:json斷言

①Assert JSON Path exists:判斷是否存在某個值,填寫 JSONPath 表達(dá)式。如果未找到路徑,斷言失敗。

eg:?$.code? 判斷是否存在code字段

②Additionally assert value :額外斷言值,文本驗證,此處是完全匹配,如果勾選這個選項,下面的Expected Value對話框會變?yōu)榭捎脿顟B(tài),在文本框中輸入預(yù)期結(jié)果,執(zhí)行腳本時,就會自動根據(jù)設(shè)定的json路徑獲取實際結(jié)果,

若實際結(jié)果和預(yù)期結(jié)果相同,則斷言通過。

若不相同,則會提示斷言不通過。

③Expected Value? 填寫預(yù)期值

④Match as regular expression:若勾選,則Expected Value對話框中可以輸入正則表達(dá)式。

⑤Expect Null:若需要斷言的對象返回值為空時,勾選這個選項。

⑥Invert assertion :反選。若斷言結(jié)果為True,勾選該選項后,返回結(jié)果為False

注意:?判斷多個值就添加多個json斷言

* 把結(jié)果也放在csv文件中,json斷言中Expected Value填寫變量$(code)

這樣就能應(yīng)對調(diào)用不同參數(shù),輸出不同結(jié)果的斷言判斷

七,測試報告

在啟動jmeter之后,生成性能測試報告

  • 命令行進(jìn)入JMeter的bin目錄下輸入:

jmeter -n -t 上面測試文件保存的位置\文件名.jmx -l 生成測試報告的路徑\生成測試報告的名.jtl -e -o 生成html類型測試報告的路徑\生成html測試報告的名字
  • 例如我的:

D:\app\jmeter\apache-jmeter-4.0\bin>jmeter -n -t D:\app\jmeter\apache-jmeter-4.0\bin\2006c\test性能測試報告.jmx -l F:\測試\性能測試報告\a.jtl -e -o F:\測試\性能測試報告\性能測試
注意:以上所有生成的文件不能是目錄中已有的(會自動生成,不用自己瞎創(chuàng)建)
  • 參數(shù)說明

n:非GUI模式執(zhí)行JMeter; t:腳本文件(.jmx文件)的路徑; l:指定生成測試結(jié)果的保存文件(.jtl格式),此文件必須不存在; e:測試結(jié)束后,生成測試報告; o:用于存放測試報告的路徑;

  • 如果想查看html類型的測試報告,就打開生成的測試報告文件夾,找到index.html,用瀏覽器打開即可

例如我的生成的文件夾名為性能測試,我就在性能測試這個文件夾中找index.html
如想用JMeter查看測試報告,就直接把生成的jtl文件放到JMeter中的聚合報告中


第九章 接口測試:jmeter、postman的評論 (共 條)

分享到微博請遵守國家法律
盐池县| 桐梓县| 台中市| 北辰区| 琼海市| 长汀县| 兴国县| 同德县| 敖汉旗| 天长市| 茂名市| 上杭县| 临海市| 柘荣县| 五大连池市| 建始县| 东乡| 东兰县| 东莞市| 鹤岗市| 北安市| 上饶市| 饶平县| 马边| 犍为县| 万盛区| 阿瓦提县| 陇南市| 武汉市| 克山县| 溧阳市| 永定县| 南江县| 武宣县| 剑阁县| 东乌珠穆沁旗| 玉田县| 九龙坡区| 康平县| 永靖县| 名山县|