337p人体粉嫩胞高清图片,97人妻精品一区二区三区在线 ,日本少妇自慰免费完整版,99精品国产福久久久久久,久久精品国产亚洲av热一区,国产aaaaaa一级毛片,国产99久久九九精品无码,久久精品国产亚洲AV成人公司
網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

開源!AREX接口自動化回歸測試的全過程

0
分享至

AREX是一款開源的基于真實請求與數(shù)據(jù)的自動化回歸測試平臺(項目地址:https://github.com/arextest),利用JavaAgent技術(shù)與比對技術(shù),通過流量錄制回放能力實現(xiàn)快速有效的回歸測試。同時提供了接口測試、接口比對測試等豐富的自動化測試功能,無需編程能力也可快速上手。



在使用AREX流量錄制功能時,AREX Java?Agent會記錄生產(chǎn)環(huán)境中Java應(yīng)用的數(shù)據(jù)流量和請求信息,并將這些信息發(fā)送給AREX數(shù)據(jù)存取服務(wù)(Storage Service),由數(shù)據(jù)存取服務(wù)導(dǎo)入Mongodb數(shù)據(jù)庫中進行存儲。當需要進行回放測試時,AREX調(diào)度服務(wù)(Schedule Service)將會根據(jù)用戶的配置和需求,通過數(shù)據(jù)存取服務(wù)從數(shù)據(jù)庫中提取被測應(yīng)用的錄制數(shù)據(jù)(請求),然后向目標驗證服務(wù)發(fā)送接口請求。同時,Java Agent會將錄制的外部依賴(外部請求/DB)的響應(yīng)返回給被測應(yīng)用,目標服務(wù)處理完成請求邏輯后返回響應(yīng)報文。隨后調(diào)度服務(wù)會將錄制的響應(yīng)報文與回放的響應(yīng)報文進行比對,驗證系統(tǒng)邏輯正確性,并將比對結(jié)果推送給分析服務(wù)(Report Service),由其生成回放報告,供測試人員檢查。在整個過程中,AREX的緩存服務(wù)Redis負責(zé)緩存回放過程中的Mock數(shù)據(jù)和比對結(jié)果,以提高比對效率。

本文以community-test工具為例,從AREX Agent配置到錄制回放、問題定位,完整展示AREX接口自動化回歸測試的全過程。

community-test(https://github.com/arextest/arex-community-test)是一個由AREX提供的用于測試和驗證AREX系統(tǒng)功能的工具,它是一個Java應(yīng)用程序,依賴于MySQL和Redis,用于模擬業(yè)務(wù)服務(wù)。



AREX運行環(huán)境

筆者在應(yīng)用環(huán)境申請了Linux服務(wù)器,這是由OPS提供的設(shè)備。

服務(wù)器的IP地址是10.5.153.1,擁有128GB內(nèi)存和32 Core。該服務(wù)器可以通過公司辦公網(wǎng)進行訪問,但其他外部環(huán)境無法訪問。主要目的是在該服務(wù)器上安裝AREX服務(wù)和部署community-test的測試環(huán)境。

為了確保服務(wù)器能夠訪問公網(wǎng),需要進行一些設(shè)置。在安裝過程中,需要下載AREX的安裝包,并獲取community-test的代碼進行編譯和發(fā)布。如果你的服務(wù)器可以直接訪問公網(wǎng),則可以跳過設(shè)置代理的步驟。否則,需要設(shè)置代理以確保服務(wù)器能夠訪問公網(wǎng)。

在端口方面,沒有限制對外暴露的端口數(shù)量。然而,現(xiàn)在OPS對每個服務(wù)器做了限制,缺省情況下只允許外部訪問的端口是80和8080,其他端口默認是被block的。

另外,遠程訪問受限,本次演示是通過跳板機登錄到服務(wù)器的。

通過錄制回放進行回歸測試

安裝AREX

遠程登錄10.5.153.1,新建目錄arex。

cd arex

git clone https://github.com/arextest/deployments.git



執(zhí)行以下命令啟動AREX:

#讀取當前目錄的docker-compose.yml文件,并以服務(wù)的方式啟動

docker-compose up-d

#讀取當前目錄的docker-compose-distribute.yml文件,并以服務(wù)的方式啟動

docker-compose-f docker-compose-distribute.yml up-d

#讀取當前目錄的docker-compose-mongo4.4.21.yml文件,并以服務(wù)的方式啟動,因為某些服務(wù)器硬件版本的原因,不能啟動5.0的mongodb

docker-compose-f docker-compose-mongo4.4.21.yml up-d

啟動后,可以使用docker-compose ps?命令查看各個服務(wù)的狀態(tài)和配置:



·State是各個服務(wù)狀態(tài),Up才是正確的,如果是其他狀態(tài),則需要重啟服務(wù)或者查看服務(wù)的日志,檢查不能啟動的原因。

·arex-front就是前端,這里我的端口沒有修改,缺省為8088端口。你可以根據(jù)你的環(huán)境配置想要的端口,比如80端口。

·MongoDB的端口仍然是默認的27017(你也可以使用你的MongoDB工具連接到數(shù)據(jù)庫),鏈接地址是:10.5.153.1:27017,用戶名為"arex",密碼為"iLoveArex"。請注意,在Docker Compose的配置中,鏈接地址應(yīng)為:mongodb://arex:iLoveArex@mongodb:27017/arex_storage_db,這是因為在Docker Compose中使用的是服務(wù)名進行網(wǎng)絡(luò)連接。因此,你可以使用以下地址訪問MongoDB:mongodb://arex:iLoveArex@10.5.153.1:27017/arex_storage_db。

·arex-storage的端口是8093,這是需要在agent配置中指定的端口。在我的環(huán)境中配置的storage地址是10.5.153.1:8093。

使用docker-compose images?查看各個服務(wù)組件運行的版本:



AREX的各個組件都是0.2.10,其中`arex-node`服務(wù)后續(xù)要去掉,而且功能也沒有更新,還是0.2.7版本。

啟動后,在當前啟動目錄下有兩個目錄。其中`arex-logs`?是存儲各個服務(wù)的日志,`arex-data`用于存儲數(shù)據(jù)。



啟動后,可以在命令行中查看日志:



·docker-compose logs:查看全部的日志

·docker-compse logs arex-report-service:查看Report服務(wù)的日志

安裝后訪問AREX前端頁面http://10.5.153.1:8088/,輸入郵箱獲取驗證碼進行登錄,如下圖:



至此,AREX的安裝結(jié)束。

community-test業(yè)務(wù)服務(wù)安裝

下載編譯AREX Agent代碼

git clone https://github.com/arextest/arex-agent-java.git

cd arex-agent-java

mvn clean package

編譯完成:



檢查當前目錄下的arex-agent-jar目錄,是否存在最新編譯的arex agent jar文件:



編譯community-test代碼

拉取代碼:

git clone https://github.com/arextest/arex-community-test.git



使用`mvn clean package`編譯項目:



為了運行方便,將community-test?進行容器化部署:

FROM tomcat:9.0-jdk8-openjdk

ARG WAR_FILE=./target/arex-agent-test-0.0.1-SNAPSHOT.war

ADD$WAR_FILE/usr/local/tomcat/webapps/

WORKDIR/usr/local/tomcat/conf

RUN sed-i'N;152a\\t'server.xml

ADD./arex-agent-0.2.0.jar/usr/local/tomcat/

ADD./arex-agent-bootstrap-0.2.0.jar/usr/local/tomcat/

WORKDIR/usr/local/tomcat

EXPOSE 8080

CMD["catalina.sh","run"]

容器化編譯shell如下,僅供參考,相對目錄可能都需要修改:

cd../arex-community-test

mvn clean package

cp../deployments/dockerfile/community.Dockerfile./Dockerfile

cp../arex-agent-java/arex-agent-jar/arex-agent-0.3.0.jar./arex-agent-0.3.0.jar

cp../arex-agent-java/arex-agent-jar/arex-agent-bootstrap-0.3.0.jar./arex-agent-bootstrap-0.3.0.jar

docker build-t arexadmin01/arex-community-test:0.0.1.

rm-rf./Dockerfile

rm-rf./arex-agent-0.3.0.jar

rm-rf./arex-agent-bootstrap-0.3.0.jar

cd..

至此,已經(jīng)成功創(chuàng)建用于測試的程序鏡像。

SUT應(yīng)用配置AREX Agent

以下是運行community-test工具時所使用的原始命令行,并且提供了與數(shù)據(jù)庫和Redis的連接配置,如下:

environment:

-JAVA_TOOL_OPTIONS=-Dspring.datasource.url=jdbc:mysql://cmysql:3306/community?useUnicode=true&characterEncoding=utf-8-Dspring.datasource.username=arex_admin-Dspring.datasource.password=arex_admin_password-Dspring.redis.host=credis-Dspring.redis.port=6379

增加AREX的配置:

environment:

-JAVA_TOOL_OPTIONS='-javaagent:/usr/local/tomcat/arex-agent-0.3.0.jar'-Darex.service.name=community-service-Darex.storage.service.host=10.5.153.1:8093-Darex.enable.debug=true-Dspring.datasource.url=jdbc:mysql://cmysql:3306/community?useUnicode=true&characterEncoding=utf-8-Dspring.datasource.username=arex_admin-Dspring.datasource.password=arex_admin_password-Dspring.redis.host=credis-Dspring.redis.port=6379

·'-javaagent:/usr/local/tomcat/arex-agent-0.3.0.jar'這部分就是我們編譯的AREX Agent的JAR文件,該JAR文件將作為Java代理(Java agent)加載到應(yīng)用程序中。

·-Darex.service.name=community-service:這是應(yīng)用程序的名稱,它將在AREX Replay頁面中顯示。

·-Darex.storage.service.host=10.5.153.1:8093:這是AREX Storage服務(wù)的地址,指定為10.5.153.1:8093。

·-Darex.enable.debug=true:這是一個配置選項,如果設(shè)置為true,則將以調(diào)試模式運行,即會錄制所有的流量。在生產(chǎn)環(huán)境中,建議將其設(shè)置為false。

啟動arex-community-test?服務(wù),隨后在AREX前端頁面查看應(yīng)用注冊情況:



可以看到,被測試應(yīng)用community-test?已經(jīng)成功運行,其訪問地址為http://10.5.153.1:8080/。

回歸測試

生產(chǎn)環(huán)境發(fā)布運行

現(xiàn)在,arex-agent已經(jīng)成功地啟動并在應(yīng)用程序中運行,在錄制過程中,用戶無需進行任何特殊的操作或干預(yù),可以按照常規(guī)方式對外提供服務(wù)或手動訪問應(yīng)用程序。

在本文的演示中,筆者使用Collection中的批量執(zhí)行功能對community-service?進行訪問,訪問地址為http://10.5.153.1:8080/。

在訪問過程中,arex-agent會自動開始錄制并將錄制的AREX用例存儲起來,無需用戶手動進行錄制操作。



業(yè)務(wù)代碼更新

當我們的業(yè)務(wù)需求實現(xiàn)并提交以后,新版本要編譯測試,則執(zhí)行以下步驟:

1.拉取新代碼

2.編譯代碼并打包

3.重點:保持AREX Agent的配置不變,特別是應(yīng)用名,AREX是利用應(yīng)用名來識別應(yīng)用和管理用例的。因此在新版本的編譯和測試過程中,應(yīng)保持與之前版本相同的應(yīng)用名配置。

4.發(fā)布代碼到測試環(huán)境:將編譯和打包后的應(yīng)用程序代碼發(fā)布到測試環(huán)境中,以便進行進一步的測試和驗證。

在測試環(huán)境進行回歸測試

進入AREX Replay頁面,選擇community-service?服務(wù),在右邊回放界面上點擊"Start Replay"按鈕,輸入回放的地址(我用的是同一個環(huán)境,所以地址還是http://10.5.153.1:8080/),開始回放:



測試問題定位

如果測試比對全部執(zhí)行且沒有任何差異,則測試通過:



如果測試過程中發(fā)現(xiàn)問題,如下所示:



點擊存在問題的回放報告,展示所有的接口及其回歸測試情況,如下圖:



點擊DiffScenes(New),將以總體統(tǒng)計視圖顯示差異點所在。value diff,就是新老版本比對的差異在值差異。



繼續(xù)點擊差異點,查看差異細節(jié),如下圖。左邊是benchmark,即生產(chǎn)錄制的值;右邊是Test,即測試環(huán)境回放過程中返回的值,兩者不一致即返回差異信息。



根據(jù)發(fā)現(xiàn)的差異,找到代碼中存在問題的點:

·確認問題,將問題修復(fù),重復(fù)"業(yè)務(wù)代碼更新"的章節(jié),修改→測試發(fā)布→比對。

·確認非問題,則將此節(jié)點設(shè)置為過濾節(jié)點,下次回放跳過該節(jié)點比對。

·持續(xù)此操作,將所有的差異點都確認修復(fù)或者差異在預(yù)期范圍內(nèi)。

·確認修復(fù)和發(fā)布版本。

總結(jié)

本文主要描述的是

1.AREX環(huán)境搭建

2.AREX Agent編譯獲取

3.被測試服務(wù)加上AREX Agent的配置

4.被測試服務(wù)在生產(chǎn)環(huán)境常規(guī)運行,無須干預(yù),逐步建立AREX錄制回放用例

5.被測試服務(wù),因需求而代碼修改

6.被測試服務(wù)打包,加上AREX agent的配置,并發(fā)布測試環(huán)境,

7.在AREX Replay界面輸入測試環(huán)境地址,進行回放

8.檢查回放結(jié)果

1)回放差異在預(yù)期內(nèi),過濾掉差異節(jié)點

2)回放差異非預(yù)期內(nèi),修復(fù)BUG,重復(fù)6到8的操作

9.直至回歸測試沒有非預(yù)期內(nèi)差異為止,測試通過,被測試應(yīng)用發(fā)布生產(chǎn)環(huán)境

最后:在我的V:atstudy-js,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
今日油價:今天3月24日,全國加油站調(diào)整后92、95汽油最新零售價

今日油價:今天3月24日,全國加油站調(diào)整后92、95汽油最新零售價

沙雕小琳琳
2026-03-24 03:06:04
張凌赫一覺醒來“天塌了”!網(wǎng)友:“怎么了?我的粉底液大將軍”

張凌赫一覺醒來“天塌了”!網(wǎng)友:“怎么了?我的粉底液大將軍”

小娛樂悠悠
2026-03-23 09:14:55
湖人遭活塞雙殺無緣10連勝!東契奇32分里程悲 詹姆斯帶傷準三雙

湖人遭活塞雙殺無緣10連勝!東契奇32分里程悲 詹姆斯帶傷準三雙

羅說NBA
2026-03-24 09:38:33
魯山舅舅后續(xù):距調(diào)查組成立19天,女孩立下遺書,原告變成嫌疑人

魯山舅舅后續(xù):距調(diào)查組成立19天,女孩立下遺書,原告變成嫌疑人

觀察鑒娛
2026-03-23 09:28:03
日本的空姐,長得個個漂亮,最后面大高個,長得跟好看賽若明星!

日本的空姐,長得個個漂亮,最后面大高個,長得跟好看賽若明星!

動物奇奇怪怪
2026-03-24 00:09:00
寧波貨車司機55萬買長江電力,持有10年凈賺超210萬

寧波貨車司機55萬買長江電力,持有10年凈賺超210萬

真實人物采訪
2026-03-23 08:15:03
裁員超50%!一公司養(yǎng)蝦后只需管5臺電腦 負責(zé)人:AI永不出錯、不喊累

裁員超50%!一公司養(yǎng)蝦后只需管5臺電腦 負責(zé)人:AI永不出錯、不喊累

快科技
2026-03-22 17:14:04
真的來了!蘋果正式官宣 iOS 27 新系統(tǒng)

真的來了!蘋果正式官宣 iOS 27 新系統(tǒng)

XCiOS俱樂部
2026-03-24 07:05:34
國際油價盤中暴跌超10%

國際油價盤中暴跌超10%

新京報
2026-03-23 20:13:11
全新奧迪A6L將于3月25日上市,重新定義C級旗艦座駕

全新奧迪A6L將于3月25日上市,重新定義C級旗艦座駕

澎湃新聞
2026-03-23 15:20:04
伊朗稱將展示新驚喜,讓特朗普“抬頭看”

伊朗稱將展示新驚喜,讓特朗普“抬頭看”

界面新聞
2026-03-23 23:11:51
感謝薩巴倫卡!賽后說到關(guān)鍵 指出鄭欽文輸球真相 也有收到好消息

感謝薩巴倫卡!賽后說到關(guān)鍵 指出鄭欽文輸球真相 也有收到好消息

侃球熊弟
2026-03-24 07:58:58
特斯拉和比亞迪的差距是多少?老駕駛員:上了高速你就懂了

特斯拉和比亞迪的差距是多少?老駕駛員:上了高速你就懂了

阿尢說歷史
2026-03-22 18:51:06
澳門國民黨中將呂文貞突然說,我是李克農(nóng)的人,該向組織報到了!

澳門國民黨中將呂文貞突然說,我是李克農(nóng)的人,該向組織報到了!

棠棣分享
2026-03-24 00:19:49
女孩“全損課本”火了,自認為是清北的料子,老師:自我感動罷了

女孩“全損課本”火了,自認為是清北的料子,老師:自我感動罷了

復(fù)轉(zhuǎn)這些年
2026-03-23 20:48:15
歐盟終于硬氣!撕破歐爾班通俄面具,小團體重守歐洲底線

歐盟終于硬氣!撕破歐爾班通俄面具,小團體重守歐洲底線

老馬拉車莫少裝
2026-03-23 16:20:11
打臉時刻!ESPN賽季前預(yù)測戰(zhàn)績被翻出:勇士63勝領(lǐng)跑全聯(lián)盟

打臉時刻!ESPN賽季前預(yù)測戰(zhàn)績被翻出:勇士63勝領(lǐng)跑全聯(lián)盟

羅說NBA
2026-03-24 06:52:51
以高級官員稱美伊本周將在巴基斯坦會談,伊朗議長發(fā)文否認;內(nèi)塔尼亞胡:特朗普欲借軍事成果推動達成協(xié)議,以色列將繼續(xù)襲擊伊朗和黎巴嫩

以高級官員稱美伊本周將在巴基斯坦會談,伊朗議長發(fā)文否認;內(nèi)塔尼亞胡:特朗普欲借軍事成果推動達成協(xié)議,以色列將繼續(xù)襲擊伊朗和黎巴嫩

每日經(jīng)濟新聞
2026-03-24 07:46:06
金價跌回三位數(shù)!中東戰(zhàn)火之下,黃金為何突然暴跌? 黃金的避險功能消失了嗎?

金價跌回三位數(shù)!中東戰(zhàn)火之下,黃金為何突然暴跌? 黃金的避險功能消失了嗎?

每日經(jīng)濟新聞
2026-03-23 22:36:52
演半輩子鬼子,卻被一紙命令調(diào)出八一廠,如今這個“壞人”咋樣了

演半輩子鬼子,卻被一紙命令調(diào)出八一廠,如今這個“壞人”咋樣了

卷史
2026-03-23 21:46:20
2026-03-24 09:55:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1542文章數(shù) 13256關(guān)注度
往期回顧 全部

科技要聞

史上最大造芯計劃啟動,馬斯克胃口為何這么大

頭條要聞

特朗普"最后通牒"延期 美伊雙方不同反應(yīng)引發(fā)外界猜測

頭條要聞

特朗普"最后通牒"延期 美伊雙方不同反應(yīng)引發(fā)外界猜測

體育要聞

不敢放手一搏,你拿什么去爭冠?

娛樂要聞

鐘麗緹就女兒考拉爭議道歉:女兒還小

財經(jīng)要聞

很多人,都被黃金嚇怕了!

汽車要聞

東風(fēng)雪鐵龍新凡爾賽C5X上市 官方一口價11.37萬起

態(tài)度原創(chuàng)

本地
藝術(shù)
游戲
旅游
教育

本地新聞

這里是寶雞 嫽滴很!

藝術(shù)要聞

毛主席鉛筆字揭秘!這7個字震撼人心,真相讓人淚目!

提前開香檳! 粉絲們稱《GTA6》年度最佳游戲已無敵手

旅游要聞

湖北襄陽一景區(qū)多名游客同日手機被盜,景區(qū)稱事發(fā)地為監(jiān)控盲區(qū)

教育要聞

高考完檔案袋為啥不能拆?不小心拆了會怎么樣?

無障礙瀏覽 進入關(guān)懷版