摘要:將響應(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í)器組件。
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í)間影響。
現(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
摘要:前言大家好,我是測(cè)試君最近有小伙伴后臺(tái)給我留言,說(shuō)自己用寫(xiě)了一個(gè)大文件上傳的接口,現(xiàn)在想本地檢驗(yàn)一下接口并發(fā)的穩(wěn)定性,問(wèn)我有沒(méi)有好的方案本篇文章以文件上傳為例,聊聊并發(fā)執(zhí)行腳本的完整流程實(shí)現(xiàn)文件上傳大文件上傳包含個(gè)步驟, ...
摘要:因?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ě)...
摘要:接口測(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)作 溫故知...
摘要:創(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)告...
閱讀 3122·2023-04-25 15:02
閱讀 2827·2021-11-23 09:51
閱讀 2039·2021-09-27 13:47
閱讀 1994·2021-09-13 10:33
閱讀 982·2019-08-30 15:54
閱讀 2648·2019-08-30 15:53
閱讀 2864·2019-08-29 13:58
閱讀 898·2019-08-29 13:54