qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Jmeter和LR上傳文件和下載

           背景:
            在某個申請業務中,需要上傳附件文件,然后才能提交該申請
            遇到的問題:
            1,  在使用Jmeter或者LR進行錄制時,無法錄制到上傳文件的請求,只能通過Fiddler能查看到該請求
            2,  因為錄制不下來,只能手工構造,但網上相關的材料太少。
            所以在這里整理備忘
            Fiddler錄制得到的請求的Header和Body如下面的兩個截屏
            body
            截圖如上,注意Header截圖【Content-Type:multipart/form-data;boundary=----------cH2GI3Ef1gL6Ij5cH2gL6Ij5ei4gL6】和Body截圖
            每一個“-----------------------------”為分隔符,代表一個表單域;
            最后一個“----------cH2GI3Ef1gL6Ij5cH2gL6Ij5ei4gL6--”(以“--”結尾)分隔符為表單域結束邊界。
            由此可以看到我得到的這個請求,POST data中共有四個表單域,最后一個即包含了name=”Filedate”(這個name的值可以自己定),filename=”ff.txt”,下圖中紅框為ff.txt實際上傳的文件內容


           Server端的代碼如下
            一,Jmeter
            需要注意
            1,請求類型為Post
            2,要勾選 Use multipart/form-data for POST,否則request中將不包含上傳的文件
            3,  MIME類型為application/octet-stream

          二,LoadRunner
          lr_start_transaction("upload");
          web_reg_save_param("attachmentId1",
          "LB/IC=attachmentId\":\"",
          "RB/IC=\"",
          "Ord=1",
          "Search=ALL",
          LAST);
          web_submit_data("upload.text",
          "Action=http://192.168.0.1:8000/fileUpload/upload.text",
          "Method=POST",
          "EncType=multipart/form-data",
          "RecContentType=text/plain",
          "Referer=",
          "Snapshot=t230.inf",
          "Mode=HTTP",
          ITEMDATA,
          "Name=Filename","Value=Attachment.doc", ENDITEM,
          "Name=attachmentType","Value=合同正本", ENDITEM,
          "Name=Filedata","Value=Attachment.doc", "File=Yes", ENDITEM,
          "Name=Upload","Value=Submit Query", ENDITEM,
          LAST);
          lr_end_transaction("upload",LR_AUTO);
            LoadRunner的下載
          lr_start_transaction("downloadApproval");
          web_reg_save_param("FileName",
          "LB=filename=",
          "RB=.pdf",
          "Ord=1",
          LAST);
          web_url("generateApproval.html",
          "URL=http:// 192.168.0.1:8000/xx/generateApproval.html?id={PersionId}",
          "Resource=1",
          "RecContentType=application/x-msdownload",
          "Referer=http:// 192.168.0.1:8000/xx/viewWorkflow.html?id={PersionId}",
          "Snapshot=t60.inf",
          LAST);
          lr_message("!!filename is%s.xml",lr_eval_string("{FileName}"));
          //獲取二進制文件類型的文件大小
          flen =web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
          lr_message("Size:%d",flen);
          lr_end_transaction("downloadApproval",LR_AUTO);

          posted on 2014-04-11 10:41 順其自然EVO 閱讀(3214) 評論(1)  編輯  收藏 所屬分類: jmeter and badboy 、loadrunner

          評論

          # re: Jmeter和LR上傳文件和下載 2016-02-16 14:44 chenhua

          請問一下文件類型怎參數化 ,用Jmeter 做性能測試,插到數據庫的類型都是“application/octet-stream Content-Transfer-Encoding: binary”  回復  更多評論   

          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 永寿县| 五指山市| 阿合奇县| 临夏县| 宾川县| 英山县| 玉树县| 蓬溪县| 河间市| 砚山县| 卓尼县| 兴仁县| 公主岭市| 榆林市| 尚义县| 友谊县| 桦川县| 曲靖市| 辉南县| 商城县| 泰兴市| 宁海县| 太谷县| 台北县| 清徐县| 安新县| 玛纳斯县| 灌云县| 观塘区| 璧山县| 时尚| 宜章县| 宝兴县| 闽清县| 青阳县| 孟连| 伊春市| 枣阳市| 惠州市| 曲阜市| 屏山县|