国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測

這篇具有很好參考價(jià)值的文章主要介紹了基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

上一篇文章中,我們?cè)敿?xì)介紹了構(gòu)建 Apifox Cli 的 Docker 鏡像的步驟,并通過簡單的示例演示了如何利用 GitLab 的 CI/CD 功能,將構(gòu)建好的鏡像利用在自動(dòng)化測試作業(yè)中。在今天的文章中,我們將重點(diǎn)討論如何構(gòu)建 JMeter 的 Docker 鏡像,并演示如何在 GitLab 的 CI/CD 作業(yè)中利用該鏡像進(jìn)行自動(dòng)化壓力測試。

測試接口

測試接口依舊采用上篇文章使用的接口,詳見https://blog.csdn.net/jiajw0426/article/details/137612529

使用如下命令生成測試數(shù)據(jù),為了演示我們會(huì)把腳本卸載執(zhí)行自動(dòng)化測試之前

curl -X POST -H "Content-Type: application/json" \
  -d '{"name": "John", "age": 30}' \
   http://192.168.3.52:9999/users

使用如下命令檢查數(shù)據(jù)是否生成成功

curl http://192.168.3.52:9999/users

構(gòu)建JmeterDocker鏡像

如果可以上網(wǎng)可以通過命令從網(wǎng)上下載Jmeter

wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz

我們基于 OpenJDK 17 鏡像構(gòu)建,設(shè)定工作目錄為 /jmeter,然后從本地復(fù)制 JMeter 的壓縮包至工作目錄,并解壓。接著,將 JMeter 的 bin 目錄添加至 PATH 環(huán)境變量中。你也可以選擇復(fù)制自定義的 JMeter 配置文件到相應(yīng)目錄。最后,可選地指定了默認(rèn)的啟動(dòng)命令為 jmeter。

# 使用 JDK 鏡像作為基礎(chǔ)鏡像
FROM openjdk:17

# 設(shè)置工作目錄
WORKDIR /jmeter

#  本地復(fù)制JMeter
COPY apache-jmeter-5.6.3.tgz /jmeter/
RUN  tar -xzf apache-jmeter-5.6.3.tgz && \
    rm apache-jmeter-5.6.3.tgz

# 將 JMeter 的 bin 目錄添加到 PATH
ENV PATH="/jmeter/apache-jmeter-5.6.3/bin:${PATH}"

# 復(fù)制自定義的 JMeter 配置文件(如果有的話)
# COPY jmeter.properties /jmeter/apache-jmeter-5.6.3/bin/jmeter.properties

# 指定默認(rèn)的啟動(dòng)命令(可選)
# CMD ["jmeter"]

使用如下命令構(gòu)建Docker鏡像

docker build -t docker.mvcode.cn:8083/jmeter:5.6.3

然后使用命令上傳到鏡像庫

docker push docker.mvcode.cn:8083/jmeter:5.6.3

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

然后使用如下命令測試Jmeter命令是否可以正常使用

docker run --rm docker.mvcode.cn:8083/jmeter:5.6.3 jmeter -v

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

編寫測試用例

測試用例非常簡單,就是多線程并發(fā)請(qǐng)求用戶查詢接口,驗(yàn)證查詢結(jié)果返回結(jié)果是否正確。我們使用Jmeter工具編寫測試用例。

設(shè)置環(huán)境變量

這里定義了一些用戶變量,包括主機(jī)名(Host)、端口號(hào)(Port)、線程數(shù)(ThreadCount)和循環(huán)次數(shù)(LoopCount)。為了在后續(xù)的測試中靈活地修改,通過${__P(name,default)}方式從系統(tǒng)變量中獲取,在Jemter中執(zhí)行就使用默認(rèn)值。既滿足編寫測試用例,有方便自動(dòng)執(zhí)行。
基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

定義線程組

在這個(gè)測試用例中,線程數(shù)由之前定義的 ThreadCount 變量控制,每個(gè)線程將循環(huán)執(zhí)行指定LoopCount 次數(shù)的請(qǐng)求。

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

用戶查詢請(qǐng)求

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

JSON斷言

使用$.[?(@.name == 'John' && @.age == 30)]對(duì)結(jié)果進(jìn)行斷言。

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

本地執(zhí)行測試

執(zhí)行測試成功可以導(dǎo)出到文件。
基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

定義Gitlab Job

將導(dǎo)出文件jmeter.jmx上傳到testcases目錄、
基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

修改測試腳本

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

修改test.js腳本,如上圖所示。首先添加如下內(nèi)容,通過我們構(gòu)建的devtools鏡像,添加用于測試的數(shù)據(jù)。devtools鏡像的構(gòu)建步驟參照基于Docker構(gòu)建CI/CD工具鏈(一)構(gòu)建基礎(chǔ)工具鏡像

docker run --rm \
   docker.mvcode.cn:8083/devtools:1.0.0 \
   curl -X POST -H "Content-Type: application/json" \
  -d '{"name": "John", "age": 30}' \
   http://192.168.3.52:9999/users

添加執(zhí)行Jmeter測試用的腳本如下

docker run --rm -v ${APP_ROOT}:/app -w /app \
   docker.mvcode.cn:8083/jmeter:5.6.3 jmeter \
   -n -j /app/test_jmeter.log \
   -l /app/replort_jmeter.log \
   -o /app/report \
   -JServerHost=192.168.3.52 \
   -JServerPort=9999 \ 
   -JThreadCount=5 \
   -t ./testcases/jmeter.jmx -e -f

這是一個(gè) Docker 命令,用于在容器中運(yùn)行 JMeter 測試。以下是命令的各部分解釋:

  • docker run: 運(yùn)行 Docker 容器的命令。
  • --rm: 在容器停止后自動(dòng)刪除容器,確保容器退出后不會(huì)留下殘留文件。
  • -v ${APP_ROOT}:/app: 將本地 ${APP_ROOT} 目錄(宿主機(jī)上的目錄)掛載到容器內(nèi)的 /app 目錄,實(shí)現(xiàn)文件的共享和數(shù)據(jù)持久化。
  • -w /app: 指定容器的工作目錄為 /app,即在容器內(nèi)運(yùn)行命令時(shí)的默認(rèn)工作目錄為 /app。
  • docker.mvcode.cn:8083/jmeter:5.6.3: 指定要運(yùn)行的 Docker 鏡像的名稱和版本,這里是 JMeter 版本為 5.6.3 的鏡像,來自 docker.mvcode.cn:8083 倉庫。
  • jmeter: 要在容器中執(zhí)行的命令,這里是運(yùn)行 JMeter。
  • -n: 非 GUI 模式運(yùn)行 JMeter。
  • -j /app/test_jmeter.log: 指定 JMeter 的日志文件路徑。
  • -l /app/replort_jmeter.log: 指定測試結(jié)果的日志文件路徑。
  • -o /app/report: 指定生成 HTML 報(bào)告的目錄。
  • -JServerHost=192.168.3.52: 設(shè)置 JMeter 測試時(shí)使用的服務(wù)器主機(jī)地址。
  • -JServerPort=9999: 設(shè)置 JMeter 測試時(shí)使用的服務(wù)器端口。
  • -JThreadCount=5: 設(shè)置 JMeter 測試時(shí)的線程數(shù)。你可以設(shè)置LoopCount設(shè)置循環(huán)次數(shù)。
  • -t ./testcases/jmeter.jmx: 指定要運(yùn)行的 JMeter 測試計(jì)劃文件的路徑。
  • -e: 生成 JMeter 測試報(bào)告時(shí)包括所有樣本數(shù)據(jù)。
  • -f: 在生成 JMeter 測試報(bào)告時(shí)強(qiáng)制覆蓋已存在的報(bào)告文件。

綜上所述,該命令的作用是在 Docker 容器中運(yùn)行 JMeter 測試,并生成相應(yīng)的日志文件和測試報(bào)告。其他參數(shù)可以參照J(rèn)Meter官方文檔。

執(zhí)行CI/CD JOB

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

執(zhí)行測試完成后,你在宿主機(jī)上可以看到生成測試報(bào)告。如何收集測試報(bào)告我們會(huì)通過一篇專門的文章講述。
基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試

基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測,docker,ci/cd,jmeter,功能測試文章來源地址http://www.zghlxwxcb.cn/news/detail-853798.html

到了這里,關(guān)于基于Docker構(gòu)建CI/CD工具鏈(七)使用Jmeter進(jìn)行自動(dòng)化壓測的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [Docker實(shí)現(xiàn)測試部署CI/CD----構(gòu)建成功后釘釘告警(7)]

    [Docker實(shí)現(xiàn)測試部署CI/CD----構(gòu)建成功后釘釘告警(7)]

    首先需要在釘釘中創(chuàng)建一個(gè)項(xiàng)目群。 復(fù)制Webhook,后面在 Jenkins 配置時(shí)需要使用。 ????????在Jennkins中下載 build user vars plugin ,獲取項(xiàng)目中的相關(guān)變量值 在 Jenkins 中下載 DingTalk 插件。 在 Jenkins 的系統(tǒng)管理中可找到“釘釘”,這是安裝過 DingTalk 后出現(xiàn)的。 修改Jenkinsfile文件

    2024年02月13日
    瀏覽(53)
  • 微服務(wù) & 云原生:基于 Gogs + Drone 實(shí)現(xiàn) CI/CD 自動(dòng)化

    微服務(wù) & 云原生:基于 Gogs + Drone 實(shí)現(xiàn) CI/CD 自動(dòng)化

    以一個(gè)簡單的前后端項(xiàng)目來說,分別編寫前后端的 Dockerfile 文件并構(gòu)建鏡像,然后編寫 docker-compose.yml 構(gòu)建部署,啟動(dòng)運(yùn)行。每次代碼變更后都需重新手動(dòng)打包、構(gòu)建、推送。 一個(gè)簡單的例子: 前端: 項(xiàng)目名:kubemanagement-web 技術(shù)棧:Vue 后端: 項(xiàng)目名:kubemanagement 技術(shù)棧:

    2024年02月13日
    瀏覽(22)
  • 使用gitlab 自帶 CI/CD 構(gòu)建部署項(xiàng)目

    使用gitlab 自帶 CI/CD 構(gòu)建部署項(xiàng)目

    這里我用的是橋接模式 橋接模式方便局域網(wǎng)內(nèi)的小伙伴一起使用 如果沒有這個(gè)打算可跳過這步 編輯網(wǎng)絡(luò) vi /etc/sysconfig/network-scripts/ifcfg-你的網(wǎng)絡(luò)名稱 修改如下內(nèi)容 這里我有句話要講, 這些信息配置完成后出現(xiàn)\\\"網(wǎng)絡(luò)不可達(dá)\\\" 需要把 BOOTPROTO 改為 dhcp 詳情可參考 處理網(wǎng)絡(luò)不可達(dá)

    2024年02月12日
    瀏覽(27)
  • 微服務(wù) & 云原生:基于 Gogs + Drone 進(jìn)行項(xiàng)目 CI/CD

    微服務(wù) & 云原生:基于 Gogs + Drone 進(jìn)行項(xiàng)目 CI/CD

    以一個(gè)簡單的前后端項(xiàng)目來說,分別編寫前后端的 Dockerfile 文件并構(gòu)建鏡像,然后編寫 docker-compose.yml 構(gòu)建部署,啟動(dòng)運(yùn)行。每次代碼變更后都需重新手動(dòng)打包、構(gòu)建、推送。 一個(gè)簡單的例子: 前端: 項(xiàng)目名:kubemanagement-web 技術(shù)棧:Vue 后端: 項(xiàng)目名:kubemanagement 技術(shù)棧:

    2024年02月14日
    瀏覽(22)
  • 使用GitLab CI/CD 定時(shí)運(yùn)行Playwright自動(dòng)化測試用例
  • 【CI/CD】基于 Jenkins+Docker+Git 的簡單 CI 流程實(shí)踐(上)

    【CI/CD】基于 Jenkins+Docker+Git 的簡單 CI 流程實(shí)踐(上)

    在如今的互聯(lián)網(wǎng)時(shí)代,隨著軟件開發(fā)復(fù)雜度的不斷提高,軟件開發(fā)和發(fā)布管理也越來越重要。目前已經(jīng)形成一套標(biāo)準(zhǔn)的流程,最重要的組成部分就是 持續(xù)集成 及 持續(xù)交付、部署 。在此,我們?cè)诰〇|云上以一個(gè)案例簡單實(shí)踐下 CI 流程。 1.1 CI/CD 持續(xù)集成 (Continuous Integration,

    2024年02月13日
    瀏覽(31)
  • 使用Kubernetes進(jìn)行CI/CD的最佳實(shí)踐

    CI/CD是指持續(xù)集成 (Continuous Integration) 和持續(xù)交付/部署 (Continuous Delivery/Deployment) 的縮寫,是一種軟件開發(fā)方法論。通過自動(dòng)化的構(gòu)建、測試、部署等過程CI/CD能夠幫助開發(fā)者快速地將代碼交付到生產(chǎn)環(huán)境中。 Kubernetes是一種容器編排工具,它非常適合用來部署和運(yùn)行分布式應(yīng)用

    2024年02月08日
    瀏覽(31)
  • 【CI/CD技術(shù)專題】「Docker實(shí)戰(zhàn)系列」本地進(jìn)行生成鏡像以及標(biāo)簽Tag推送到DockerHub

    【CI/CD技術(shù)專題】「Docker實(shí)戰(zhàn)系列」本地進(jìn)行生成鏡像以及標(biāo)簽Tag推送到DockerHub

    背景介紹 Docker鏡像構(gòu)建成功后,只要有docker環(huán)境就可以使用,但必須將鏡像推送到Docker Hub上去。創(chuàng)建的鏡像最好要符合Docker Hub的tag要求,因?yàn)樵贒ocker Hub注冊(cè)的用戶名是liboware,最后利用docker push命令推送鏡像到公共倉庫。 前提概要 你需要在Docker hub注冊(cè)用戶:到官網(wǎng)注冊(cè)賬

    2024年02月10日
    瀏覽(21)
  • 前端自動(dòng)化部署,Devops,CI/CD

    前端自動(dòng)化部署,Devops,CI/CD

    提到 Jenkins,想到的第一個(gè)概念就是 CI/CD 在這之前應(yīng)該再了解一個(gè)概念。 DevOps? Development ?和? Operations ?的組合,是一種方法論,并不特指某種技術(shù)或者工具。DevOps 是一種重視? Dev ?開發(fā)人員和? Ops ?運(yùn)維人員之間溝通、協(xié)作的流程。通過自動(dòng)化的軟件交付,使軟件的構(gòu)建

    2024年02月10日
    瀏覽(57)
  • 【前端自動(dòng)化部署】,Devops,CI/CD

    【前端自動(dòng)化部署】,Devops,CI/CD

    提到 Jenkins ,想到的第一個(gè)概念就是 CI/CD 在這之前應(yīng)該再了解一個(gè)概念。 DevOps Development 和 Operations 的組合,是一種方法論,并不特指某種技術(shù)或者工具。 DevOps 是一種重視 Dev 開發(fā)人員和 Ops 運(yùn)維人員之間溝通、協(xié)作的流程。通過自動(dòng)化的軟件交付,使軟件的構(gòu)建,測試,發(fā)

    2024年02月10日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包