JMeter接口測試之文件上傳

最近用JMeter做接口測試,頻繁遇到了文件上傳的接口,與其他一般接口的處理方式不一樣,想著分享下,希望能給測試同學一點啟發。

文章將圍繞三個部分進行展開:

一、用戶場景

二、接口請求參數

三、JMeter腳本編寫步驟

四、JMeter腳本執行

一、用戶場景

有一個新建用戶憑證頁面,填寫字段信息,上傳圖片文件,點擊提交,即新建成功。

這個步驟包含兩個接口,一個上傳圖片文件接口,返回一個路徑字段值,在新建憑證接口的請求參數中帶上路徑,即可新建成功。

圖片

實現腳本的基本思路就是先調用上傳接口,利用JSON提取器將返回的路徑字段值提取出來,存在一個變量${get_picture_url}中,再調用新建接口,直接將路徑變量的值賦給請求參數attachUrl。

二、接口請求參數

1、文件上傳接口

對于文件上傳類的接口,注意觀察Request Headers的Content-Type,值為:multipart/form-data

圖片

請求體,參數為file

圖片

響應值,返回上傳文件的路徑信息,即data字段的值

圖片

2、新建用戶憑證接口

Request Headers的Content-Type,值為:application/x-www-form-urlencoded

圖片

請求體,參數為有6個,主要關注attachUrl,這個參數是上傳接口返回字段data的值

圖片

響應值,新建成功則返回success

圖片

三、JMeter腳本編寫步驟

一)上傳接口腳本編寫

1、添加一個線程組:財務管理

圖片

2、添加一個簡單控制器

加不加都不重要,主要是為了規范腳本,使腳本更便于閱讀,一般是一個簡單控制器下一個http請求

圖片

3、添加http請求

協議,服務器名稱,請求方法,請求路徑等照常填寫,但是要勾選 Use multipart/form-data for POST,如果還有其他參數,直接在Parameters里面照常填寫,示例中的接口沒有,就不寫了

圖片

切換至File Upload,填寫上傳文件信息

文件名稱:寫本地的上傳文件路徑即可(注意,腳本部署到Linux服務器上時,注意切換路徑)

參數名稱:填寫文件路徑的參數名稱,示例中的參數是file

MIME類型:multipart/form-data

圖片

4、添加響應斷言

根據實際接口填寫即可

圖片

5、添加JSON提取器

Names of Created variables:作為引用的變量名稱,多個變量名通過分號;隔開,自定義

JSON Path expessions:格式為 . (層級名稱),本次示例即為 .(層級名稱),本次示例即為 .(層級名稱),本次示例即為.data

Match No.:取第幾個數值,0代表隨機,-1代表取全部數組數據,1代表取一個變量數值,與設置的變量名稱有關,本次示例填-1(說明:如果填寫1,后面引用變量的時候直接用 g e t p i c t u r e u r l 即可,如果填寫 ? 1 ,返回的是一個數組,后面引用變量的時候要用 {get_picture_url}即可,如果填寫-1,返回的是一個數組,后面引用變量的時候要用 get
p
??? ?
?icture
u
??? ?
?rl即可,如果填寫?1,返回的是一個數組,后面引用變量的時候要用{get_picture_url_1},${get_picture_url_2}的形式)

Compute concatenation var(suffix_ALL):匹配到的所有數值并保存,默認為空即可

Default Value:取值失敗時展示的內容,默認為空即可

圖片

二)新建用戶憑證接口

1、添加一個簡單控制器

加不加都不重要,主要是為了規范腳本,使腳本更便于閱讀,一般是一個簡單控制器下一個http請求

圖片

二)新建用戶憑證接口

1、添加一個簡單控制器

加不加都不重要,主要是為了規范腳本,使腳本更便于閱讀,一般是一個簡單控制器下一個http請求

圖片

3、添加http請求

協議,服務器名稱,請求方法,請求路徑等照常填寫,不需要勾選 Use multipart/form-data for POST,attachUrl參數,直接將變量${get_picture_url_1}的值賦給attachUrl

圖片

File Upload也不用填寫任何信息了

圖片

4、添加響應斷言

根據實際接口填寫即可

圖片

四、JMeter腳本執行

執行腳本,除了查看結果數,看接口全部執行成功外,還要去頁面看新建的用戶憑證詳情中,上傳圖片是否成功。

今天在調試過程中發現,即使新建用戶憑證接口的路徑不正確,也能成功新建用戶憑證,只不過在查看詳情的時候,圖是裂的,就像這種效果,所以即使腳本調通了,也要去頁面看看,圖片是不是真的上傳成功了。

圖片

這樣,一個完整的接口上傳腳本就成功了。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/164278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言每日一題(36)隊列實現棧功能

力扣 225 用隊列實現棧 題目描述 請你僅使用兩個隊列實現一個后入先出(LIFO)的棧,并支持普通棧的全部四種操作(push、top、pop 和 empty)。 實現 MyStack 類: void push(int x) 將元素 x 壓入棧頂。int…

vue2系列 — 自定義指令

https://v2.cn.vuejs.org/v2/guide/custom-directive.html <div v-example:foo.bar"baz">vue 自定義指令的鉤子 bind&#xff1a; 當 v-XXX 指令綁定到節點上時 觸發inserted&#xff1a;被綁定元素插入父節點時調用update&#xff1a;所在組件的 VNode 更新…

使用nprogress實現請求進度條

一、安裝nprogress npm i nprogress 二、 在axios的請求攔截器中使用nprogress 如果對于axios的請求和響應攔截器的使用不了解的&#xff0c;可以看這篇文章&#xff1a; axios二次封裝配置請求攔截器和響應攔截器-CSDN博客 nprogress上有兩個有用的方法&#xff1a; star(…

OpenStack云計算平臺-Dashboard(圖形化)

目錄 一、安裝和配置 1、安全并配置組件 2、完成安裝 ?二、驗證操作 一、安裝和配置 1、安全并配置組件 安裝軟件包&#xff1a; yum install openstack-dashboard 編輯文件 vim /etc/openstack-dashboard/local_settings vim /etc/httpd/conf.d/openstack-dashboard.…

如何用Python爬取全國高校數據?

前言 Python是一門強大的編程語言&#xff0c;它可以用于爬取互聯網上的各種數據。在這篇文章中&#xff0c;我們將學習如何使用Python爬取全國高校數據&#xff0c;并使用代理IP進行爬取。 本文主要分為以下幾個部分&#xff1a; 數據來源及需求安裝依賴包及導入模塊爬取全…

關于禪道的安裝配置以及項目管理、團隊協同工作

目錄 一、禪道是什么&#xff1f; 二、特點和功能 三、安裝禪道 3.1 下載官網 3.2 版本考慮 3.3 禪道使用手冊參考 3.4 Windows端安裝禪道 四、啟動禪道 4.1 訪問禪道 四、禪道部分功能的使用 4.1 添加項目集 4.2 啟動/關閉項目 4.3 項目計劃儀表盤/階段目標/研發…

頭歌——操作系統實訓總結

死鎖 1、系統出現死鎖時一定同時保持了四個必要條件&#xff0c;對資源采用按序分配算法后可破壞的條件是&#xff08;A&#xff09;。 A、循環等待條件B、互斥條件C、占有并等待條件D、不可搶占條件 2、資源的靜態分配算法在解決死鎖問題中是用于&#xff08;B&#xff09;。 …

【圖論】關鍵路徑求法c++

代碼結構如下圖&#xff1a; 其中topologicalSort(float**, int, int*, bool*, int, int)用來遞歸求解拓撲排序&#xff0c;topologicalSort(float**, int*&, int, int, int)傳參圖的鄰接矩陣mat與結點個數n&#xff0c;與一個引用變量數組topo&#xff0c;返回一個布爾值…

代碼隨想錄-刷題第五天

鏈表題目總結 鏈表基本操作 對鏈表進行增刪改查等基本操作。注意&#xff0c;很多鏈表的題目使用虛擬頭結點操作起來會更加方便。每次對應頭結點的情況都要單獨處理&#xff0c;所以使用虛擬頭結點的技巧&#xff0c;就可以解決這個問題。 反轉鏈表 可以使用頭插法&#xf…

Shopee本土號封號幾率大嗎?如何避免封號?被封號了怎么辦?

Shopee是近幾年熱門的電商平臺之一&#xff0c;即使越來越多的跨境電商涌現&#xff0c;他的地位在東南亞市場依然占據一席之地&#xff0c;也依舊吸引著需要跨境商家入局。尤其在2023年&#xff0c;在TikTok Shop在印尼被關停之后&#xff0c;留下了大片空白&#xff0c;Shope…

CF 1890A Doremy‘s Paint 3 學習筆記 map的使用

原題 A. Doremys Paint 3 time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output An array &#x1d44f;1,&#x1d44f;2,…,&#x1d44f;&#x1d45b;&#xfffd;1,&#xfffd;2,…,&#xfffd;&a…

跨境電商必須要海外代理IP嗎?盤點五大海外代理IP

相信跨境電商人近日都為了2023的跨境黑五旺季奮戰&#xff0c;而2024也即將來臨&#xff0c;對于跨境人的考驗一波接著一波&#xff0c;根據Adobe Analytics的數據&#xff0c;2022年黑色星期五的銷售額創下91.2億美元新高&#xff0c;網絡星期的銷售額同樣達到創紀錄的113億美…

『 C++類與對象 』多態之單繼承與多繼承的虛函數表

文章目錄 &#x1fae7; 前言&#x1fae7; 查看虛表&#x1fae7; 單繼承下的虛函數表&#x1fae7; 多繼承下的虛函數表 &#x1fae7; 前言 多態是一種基于繼承關系的語法,既然涉及到繼承,而繼承的方式有多種: 單繼承多繼承棱形繼承棱形虛擬繼承 不同的繼承方式其虛表的形…

ToDesk提示通道限制 - 解決方案

問題 使用ToDesk進行遠程控制時&#xff0c;免費個人賬號最多支持1個設備同時發起遠控&#xff0c;若使用此賬號同時在2個設備發起遠控&#xff0c;則會提示通道限制&#xff0c;如下圖&#xff1a; 解決方案 方案1&#xff1a;斷開其它遠控 出現通道限制彈窗時&#xff0…

數據結構(超詳細講解!!)第二十四節 二叉樹(下)

1.遍歷二叉樹 在二叉樹的一些應用中&#xff0c;常常要求在樹中查找具有某種特征的結點&#xff0c;或者對樹中全部結點逐一進行某種處理。這就引入了遍歷二叉樹的問題&#xff0c;即如何按某條搜索路徑訪問樹中的每一個結點&#xff0c;使得每一個結點僅且僅被訪問一次。 …

python3實現tailf命令

由于windows上面沒有類似linux上面的tailf命令&#xff0c;所以下面的python腳本來代替其能力。 tailf.py import re import timeimport os import argparsedef follow(thefile):thefile.seek(0, os.SEEK_END)while True:_line thefile.readline()if not _line:time.sleep(0…

RabbitMQ 搭建和工作模式

MQ基本概念 1. MQ概述 MQ全稱 Message Queue&#xff08;[kju?]&#xff09;&#xff08;消息隊列&#xff09;&#xff0c;是在消息的傳輸過程中保存消息的容器。多用于分布式系統之間進行通信。 &#xff08;隊列是一種容器&#xff0c;用于存放數據的都是容器&#xff0…

docker部署微服務

目錄 docker操作命令 鏡像操作命令 拉取鏡像 導出鏡像 刪除鏡像 加載鏡像 推送鏡像 部署 pom文件加上 在每個模塊根目錄加上DockerFile文件 項目根目錄加上docker-compose.yml文件 打包&#xff0c;clean&#xff0c;package 服務器上新建文件夾 測試docker-compo…

基于springboot和微信小程序的流浪動物管理系統

基于springboot和微信小程序的流浪動物管理系統 內容簡介 基于微信小程序實現的流浪動物管理系統&#xff0c;該系統針對用戶與管理員兩種角色進行開發。 1、提供流浪動物的信息查詢功能&#xff0c;包括品種、年齡、性別、健康狀況等&#xff0c;提供救助活動報名功能。 2…

5.1 PBR基礎 BRDF介紹

基于物理的渲染&#xff08;Physically Based Rendering&#xff0c;PBR&#xff09;是指使用基于物理原理和微平面理論建模的著色/光照模型&#xff0c;以及使用從現實中測量的表面參數來準確表示真實世界材質的渲染理念。 一、反射率方程 理論基礎放在參考鏈接里。 直接開始…