大家好,小弟我目前參考網路範例用ASP做了個單純的pdf上傳頁面
手動按按鈕可以上傳成功
但是使用Jmeter測試時卻發現檔案並沒有真的上傳上去
所以想請問Jmeter是否只是模擬而已並不會真的上傳?
或是程式碼有什麼問題呢?
先謝謝各位大神了!
aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上傳檔案" /><br />
<asp:Label ID="Label1" runat="server" Height="269px" Text="Label" Width="360px"></asp:Label>
</div>
</form>
</body>
</html>
aspx.cs
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
try
{
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".pdf";
string filePath = "D:\\test\\";
FileUpload1.SaveAs(filePath + fileName);
Label1.Text = "上傳路徑:" + filePath + "\" + FileUpload1.FileName;
}
catch (Exception ex)
{
Label1.Text = "發生錯誤:" + ex.Message.ToString();
}
}
else
{
Label1.Text = "沒有選擇要上傳的檔案!";
}
}
既然問的是jmeter,你jmeter端是怎麼做的?
要知道,jmeter只是發出http post request而已,上傳檔案時,request body格式是multi-part form,如果你很熟這個格式,那大可手動建出request body,但如果不是純文字的檔案,大概不靠個小程式會有點困難,所以建議用錄製的。他內建一個proxy可以用來錄製通過proxy的request資料,然後你操作瀏覽器來上傳檔案,他就會把request記錄起來。你再把錄好的request拿來用。
你提供的 C# 程式沒有明顯的問題
建議你可以嘗試使用「Debug Sampler」和「View Results Tree」工具,以便 DEBUG 來了解 JMeter 測試的結果。
Debug Sampler 參考 Jmeter調試工具---Debug Sampler
https://www.cnblogs.com/puresoul/p/4817832.html
View Results Tree 參考 JMeter學習筆記8-View Results Tree 介紹
https://blog.csdn.net/u011541946/article/details/71056442