我是ASP.NET的新手,但对使用JMeter有一些了解。我的任务是创建一个Web服务,接受通过POST请求上传的文件。
我的控制器
public class TestController : Controller {
[HttpPost]
public string Upload(HttpPostedFileBase file) {
Logger.Debug("Upload Called, Request.Files.Count: " + Request.Files.Count);
if(model.file != null)
Logger.Debug("Okay");
else
Logger.Debug("Invalid file");
return "done";
}
}
我的JMeter采样器
JMeter HTTP request sampler
test.csv
文件和我的JMeter测试计划放在同一目录下。
但我发现file
变量始终为null
,而Request.Files.Count
始终为0.请帮助,提前致谢!
答案 0 :(得分:1)
模仿文件上传请求的最简单方法就是使用HTTP(S) Test Script Recorder录制它。有关JMeter配置说明,请参阅Apache JMeter Proxy Step by Step手册。
只需确保您的test.csv
文件位于JMeter" bin"在记录上传请求期间,JMeter将自动填充相关的HTTP Request采样器配置。有关详细信息,请参阅Recording File Uploads with JMeter指南。
注意:不要忘记妥善处理VIEWSTATE
等动态参数答案 1 :(得分:0)
我终于得到了解决方案。
C#Controller
public class TestController : Controller {
[HttpPost]
public string Upload() {
Logger.Debug("Upload Called, Request.Files.Count: " + System.Web.HttpContext.Current.Request.Files.Count);
if(System.Web.HttpContext.Current.Request.Files.Count > 0)
Logger.Debug("Okay");
else
Logger.Debug("Invalid file");
return "done";
}
}
请注意,System.Web.HttpContext.Current.Request
代替System.Web.HttpPostedFileBase
,而JMeter采样器不需要更改。