亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

如何使用 JMeter 實現(xiàn) API 接口自動化測試?

joyvw / 3445人閱讀

摘要:將響應(yīng)斷言放入請求下,會對該請求調(diào)用的響應(yīng)結(jié)果進(jìn)行斷言。異步調(diào)用,等待一定時間后獲取調(diào)用結(jié)果數(shù)據(jù)某支持客戶進(jìn)行異步調(diào)用,先發(fā)送一個異步請求提交數(shù)據(jù)獲取一個,然后隔一斷時間后再使用獲取到的請求上一個請求的返回結(jié)果需要用到定時器組件。

由于segmentfault編輯器上傳圖片錯誤,小編試過多種方式試圖拯救,還是未能成功,所以如要看完整文章請至http://t.cn/R8njjaT

miaomiao   高級測試工程師
7年測試工作經(jīng)驗,參與產(chǎn)品的功能/自動化/性能測試;目前負(fù)責(zé) Red.Q、Warden 產(chǎn)品的質(zhì)量保障工作。
背景

Red.Q 是豈安為客戶提供業(yè)務(wù)風(fēng)險情報服務(wù)的產(chǎn)品。API 是該產(chǎn)品的一個模塊,客戶可以通過輸入不同的參數(shù)獲取不同的風(fēng)險數(shù)據(jù)。
在測試該 API 的過程,就是對這個接口的測試,不同的 Token 對應(yīng)不同的訂單,對應(yīng)不同的標(biāo)簽,對應(yīng)不同的返回。本文主要介紹在測試該接口時總結(jié)的一些場景用法。

工具介紹

目前接口測試的工具,例如 Postman/SoupUI,等大多都提供了接口的發(fā)送、響應(yīng)結(jié)果的獲取、以及針對響應(yīng)結(jié)果的斷言,都可以用來做接口的自動化測試,我們目前選用的工具是 JMeter,各種工具大同小異。如對 JMeter 工具不了解的同學(xué)請戳 Bioneck 分享的 Jmeter+Jenkins 文章。
實現(xiàn)本次自動化測試用到的組件介紹 :

Threads--> 線程組

配置元件--> HTTP 請求默認(rèn)值

配置元件--> JDBC Connection Configuration

配置元件--> HTTP 信息頭管理器

定時器--> 高斯定時器

Sampler--> HTTP 請求

Sampler--> JDBC Request

后置處理器--> 正則表達(dá)式提取器

斷言--> BeanShell 斷言

斷言--> 響應(yīng)斷言

監(jiān)聽器--> 查看結(jié)果樹

測試場景與測試實現(xiàn) 1使用Token調(diào)用API

一個最簡單的 HTTP 請求,由 host+ 端口 + 路徑 + 參數(shù)構(gòu)成,調(diào)用 API 的設(shè)置如下:

1) HTTP 請求默認(rèn)值,設(shè)置好服務(wù)器 IP 和端口,所有作用范圍內(nèi)的 HTTP 請求可以不再指定。

2) HTTP 請求,設(shè)置路徑和參數(shù)

Red.Q 的請求是 GET 方法,參數(shù)可以加入 Parameters ; 如果是 POST 方法的 JSON body,參數(shù)可以放入 Body Data 內(nèi)。

POST 請求時,參數(shù)內(nèi)有中文,需要設(shè)定 Content encoding 為 utf8

3) 調(diào)用完成后,通過查看結(jié)果樹查看調(diào)用結(jié)果。

2Mock-server 的機(jī)制

需要每次請求時,把 request_id 放到 Header 內(nèi),隨請求一起調(diào)用(HTTP 信息頭管理器)。
1) HTTP 信息頭管理器
將 HTTP 信息頭管理器放入 HTTP 請求下,該 HTTP 信息頭管理器內(nèi)的參數(shù),只對該 HTTP 請求生效。
右邊的設(shè)置,每次 HTTP 請求 Mock-server 時,會將 REQUEST-ID 加入到請求 Header 內(nèi)。

2)查看結(jié)果樹內(nèi),可以看到發(fā)送的 Header。

3斷言:響應(yīng)結(jié)果的文本斷言

每次執(zhí)行測試后,需要了解本次執(zhí)行的結(jié)果正確與否,以上的步驟只能知道我們返回了什么,不能確認(rèn)到底返回的對不對。這個時候需要用到斷言,對響應(yīng)結(jié)果進(jìn)行驗證。

1)響應(yīng)斷言,提供對所有請求的響應(yīng)結(jié)果內(nèi)的內(nèi)容進(jìn)行斷言,一般為文本斷言。

將響應(yīng)斷言放入HTTP請求下,會對該HTTP請求調(diào)用的響應(yīng)結(jié)果進(jìn)行斷言。
要測試的文本放入測試的模式內(nèi),可添加多個驗證文本。

2) 查看結(jié)果樹內(nèi),如果與指定的內(nèi)容不一致,請求會標(biāo)記為失敗,并給出失敗原因。

4斷言:響應(yīng)的結(jié)果與數(shù)據(jù)庫內(nèi)的字段比較

部分場景下,要求每次調(diào)用 API 后,需要驗證對應(yīng)的 [風(fēng)險等級] 符合預(yù)期。而 [風(fēng)險等級] 保存在數(shù)據(jù)庫內(nèi),需要通過 JDBC Request 來實現(xiàn)對數(shù)據(jù)庫的操作。

1)JDBC Connection Configuration,提供對數(shù)據(jù)庫的連接配置。

2) JDBC Request,設(shè)置查詢 SQL

驗證結(jié)果一般是查詢類的 SQL,QueryType 選擇 Select Statement;
如果需要在某個請求開始前對數(shù)據(jù)庫內(nèi)的數(shù)據(jù)做新增修改刪除,則需要選擇 QueryType為Update Statement;

3)在 JDBC Request 下,添加響應(yīng)斷言,驗證響應(yīng)結(jié)果與字符串一致。

5斷言:使用 BeanShell 編寫手工斷言

每次調(diào)用 API 后,需要驗證 Token 的 [最近調(diào)用時間字段] 。該時間字段是存在數(shù)據(jù)庫內(nèi)的時間戳,而我們需要驗證 token 的最近調(diào)用時間在 15s 以內(nèi),而響應(yīng)斷言組件無法做到日期的比對,需要用正則表達(dá)式提取器將請求的響應(yīng)結(jié)果提取出來,然后作為一個變量,在 Bean Shell 內(nèi)進(jìn)行比對。

1)調(diào)用完請求后
添加 JDBC Request,設(shè)置查詢條件如下

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

2) 在 JDBC Request 下添加正則表達(dá)式提取器,提取數(shù)據(jù)庫返回的時間戳字段,保存到變量內(nèi)。

3) 在 JDBC Request 下添加 BeanShell 斷言,對正則表達(dá)式提取器內(nèi)提取的變量與當(dāng)前時間進(jìn)行比對。

6異步調(diào)用,等待一定時間后獲取調(diào)用結(jié)果數(shù)據(jù)

某 API 支持客戶進(jìn)行異步調(diào)用,先發(fā)送一個異步請求提交數(shù)據(jù)(獲取一個 token),然后隔一斷時間后再(使用獲取到的 token)請求上一個請求的返回結(jié)果;需要用到定時器組件。
1)異步調(diào)用請求接口設(shè)置。

2)異步調(diào)用請求成功后,返回一個 query_id,如果要拿到真正的處理結(jié)果,需要在調(diào)用獲取結(jié)果的請求時,把 query_id 作為一個參數(shù)。

3) 在異步請求下添加一個‘正則表達(dá)式提取器’,將異步調(diào)用返回的 query_id 保存到參數(shù)內(nèi)。

4) 獲取異步調(diào)用結(jié)果的請求內(nèi),引用正則表達(dá)式提取出來的 query_id ,并作為參數(shù)提交。

5) 異步調(diào)用一般不會馬上出結(jié)果,需要在獲取異步調(diào)用的結(jié)果請求之前等待一段時間

BeanShell Timer 內(nèi)可設(shè)置線程等待 5s;
添加高斯定時器、固定定時器等定時器也可達(dá)到等待的效果;
定時器放在 HTTP 請求下,會先執(zhí)行定時器,如果與 HTTP 請求是同級目錄,則每個 HTTP 請求都會受定時器的時間影響。

總結(jié)

現(xiàn)在幾乎所有從事 Web 測試的同學(xué)都會使用 JMeter 或某種 API 工具來調(diào)用幾把接口,而需要做到接口自動化,免不了要加入?yún)?shù)化、關(guān)聯(lián)、斷言等高級用法,本文僅列出工作中用到的常見場景中的用法,有不對之處或測試之間的交流歡迎指出,謝謝。

以上。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/8804.html

相關(guān)文章

  • 聊聊 Jmeter 如何并發(fā)執(zhí)行 Python 腳本

    摘要:前言大家好,我是測試君最近有小伙伴后臺給我留言,說自己用寫了一個大文件上傳的接口,現(xiàn)在想本地檢驗一下接口并發(fā)的穩(wěn)定性,問我有沒有好的方案本篇文章以文件上傳為例,聊聊并發(fā)執(zhí)行腳本的完整流程實現(xiàn)文件上傳大文件上傳包含個步驟, ...

    王巖威 評論0 收藏0
  • 使用jMeter對基于SAP ID service進(jìn)行Authentication的Restful

    摘要:因為這個項目最后會在年月日于上海舉行的云大會上展示,所以當(dāng)時完成集成工作后心想,還是得提前測試一下咱們的在響應(yīng)并發(fā)請求時的性能做到心里有數(shù)。 這篇文章本來Jerry只在SAP社區(qū)上寫了英文版的,可以通過點擊文末的閱讀原文獲得。后來有兩位做Marketing Cloud開發(fā)的德國同事,寫郵件詢問關(guān)于文章的更多細(xì)節(jié),聲稱這種方式對他們自己的API性能測試很有用,所以我覺得還是值得用中文再寫...

    longmon 評論0 收藏0
  • 不用寫代碼,也能做好接口測試

    摘要:接口測試形式單個接口測試包含性能測試和通過接口調(diào)用進(jìn)行場景測試。充分來說就是接口測試相對容易實現(xiàn)自動化持續(xù)集成。 本文你將了解到 1、接口測試基本概念,包含什么是接口,什么是接口測試,為什么要做接口測試2、接口測試用例設(shè)計3、怎樣不用寫代碼,也能快速的根據(jù)開發(fā)的API文檔完成接口自動化測試腳本 注:如果你對接口基本概念和接口測試用例已熟悉,可以直接跳過,其實看一遍也無防,就當(dāng)作 溫故知...

    idisfkj 評論0 收藏0
  • 使用 EOLINKER 進(jìn)行接口測試的最佳路徑 (上)

    摘要:創(chuàng)建測試環(huán)境并導(dǎo)入到用例集操作步驟如下動態(tài)圖創(chuàng)建測試環(huán)境并導(dǎo)入到用例集動態(tài)圖說明第一個頁面為測試項目列表頁面。第三個頁面為前置用例集列表頁面。 本文內(nèi)容: 測試腳本管理:講述如何在 EOLINKER 上設(shè)計測試項目目錄結(jié)構(gòu)。 編寫測試腳本:講述如何在 EOLINKER 上編寫接口測試腳本。 測試腳本執(zhí)行及報告:講述如何在 EOLINKER 上執(zhí)行接口測試腳本,及如何查看和下載測試報告...

    lordharrd 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<