測試平台系列 92 讓http請求支援檔案上傳

2022-10-10 07:00:11 字數 2179 閱讀 3698

上一節呢,我們編寫了oss的客戶端這塊內容。但其實我們是有目的的,我們知道,我們有時候測試一些介面,比方說:批量匯入商品,這種情況下,我們是要給介面傳送乙個檔案(excel或者csv)。

那怎麼保管我們的測試資料呢,那就該oss發揮它的作用了。以往我們做測試,都會放乙個目錄儲存測試資料,現在只不過是把資料放到了oss之中,其實道理都一樣。

今天我們就來實現http請求支援oss檔案上傳。在此之前我們先得修復幾個bug(還挺多的,但只列乙個典型)

需要2個返回值,但是咱在沒有斷言的時候只給了乙個,屬實馬虎。

我們之前為了圖方便,在有body的http請求裡面,強行讓http請求二選一:

0代表none, 2代表form-data 1代表raw(json) 3代表x-www-form-urlencoded, 後續的依次排列。

所以我們要去用例加個body_type,並且預設為1(因為目前我們的介面型別大部分json的).

接著我們在http請求的時候,根據不同的資料型別返回不同的body即可。

之前我們的schema資料都存放在router下面,後來存在一些迴圈引入問題。所以我把請求入參這些資料都放到了models下面,特此說明一下。

以往啊,我們很喜歡寫1,2,3,4:

if case_type == 1:
這種**,但其實這種東西完全可以放到config裡面,這樣的話我們如果要變換對應的規則,就很方便,而且看1,2,3,4還不好回憶這是什麼型別。

今次,我一定要換。

在class config下面新增子類: class bodytype:

由於我們發json也好,form也好,改變的一般是這個方法:

話不多說,我們直接上**:

這邊普通form的話,data接收的是乙個dict,json的話採用json去接收資料,而檔案這種,則採用formdata:

由於我們儲存body裡面帶有oss的檔案資訊,我們需要先解析一下資料,也就是先反序列化,接著取對應的檔案或者文字,組成formdata。

之前我們有為json型別請求新增header的操作,如今都放到http client裡面去做了,所以這邊可以稍微簡化下。

這裡需要稍微改動下,只有json型別的時候才替換body的資料,因為目前這個替換只支援字典型別。

前端部分我寫的太爛了,有興趣去看下原始碼吧(我自己都看不下去),活生生的屎山,真的。

不過我還是各種土方法給解決了,http那塊我打算就到此為止了。

我加了乙個可編輯**的元件,這個與之前的有不同,因為這個元件需要根據選擇的是file還是text來決定value單元格的輸入控制項:

這裡切換為text後,右側的選擇框會變成輸入框。

可以看到,我們呼叫自己的http上傳檔案方法(upload),完成了檔案上傳的測試功能(如果能重來,我肯定不肝這個,太累了,bug小王子。)

Jmeter測試 http請求

這幾天開始接觸jmeter測試。感覺這個工具十分的便利。可以比較真實模擬出多使用者併發請求。1.建立jmeter home系統變數,值為jmeter解壓後的路徑。例 e apache jmeter 2.6 2.在classpath系統變數後面新增 jmeter home lib ext apache...

HTTP系列 請求與響應

server 伺服器 伺服器作為硬體來說,通常是指那些具有較高計算能力,能夠提供給多個使用者使用的計算機 client 客戶端 是指與伺服器相對應,為客戶提供本地服務的程式 http 的作用就是指導瀏覽器和伺服器如何進行溝通。123 41.請求型別 路徑 協議 版本 請求行 2.key value ...

MTK平台用Socket實現HTTP請求總結

公司做了乙個小型的wap瀏覽器的專案,其中涉及到用socket的實現http請求的方法,由於網上相關資料比較少,尤其是詳細的資料比較少,所以走了不少彎路。在此僅從實現的角度說明mtk平台用socket實現http的方法,希望能給後來者一些微小的幫助。一 mtk平台socket聯網過程 熟悉pc機程式...