国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

如何使用 JMeter 實(shí)現(xiàn) API 接口自動(dòng)化測(cè)試?

joyvw / 3373人閱讀

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

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

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

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

工具介紹

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

Threads--> 線程組

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

配置元件--> JDBC Connection Configuration

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

定時(shí)器--> 高斯定時(shí)器

Sampler--> HTTP 請(qǐng)求

Sampler--> JDBC Request

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

斷言--> BeanShell 斷言

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

監(jiān)聽(tīng)器--> 查看結(jié)果樹(shù)

測(cè)試場(chǎng)景與測(cè)試實(shí)現(xiàn) 1使用Token調(diào)用API

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

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

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

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

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

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

2Mock-server 的機(jī)制

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

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

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

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

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

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

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

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

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

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

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

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

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

5斷言:使用 BeanShell 編寫(xiě)手工斷言

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

以上。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/8804.html

相關(guān)文章

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

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

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

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

    longmon 評(píng)論0 收藏0
  • 不用寫(xiě)代碼,也能做好接口測(cè)試

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

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

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

    lordharrd 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<