使用Jmeter进行NuGet性能测试

时间:2018-05-21 14:32:38

标签: jmeter nuget multipartform-data

我需要使用Jmeter工具为Nuget存储库创建性能测试,我需要将.nupkg文件部署/上传到存储库,但是我上传时遇到问题。我收到错误号415 - 不支持的媒体类型。看起来像Content-Type或者必须用于上传的multipart / form-data传输有问题。 Jmeter有这样的POST选项,但在我的情况下我有PUT。

以下卷曲正确发布

curl -XPUT http://hostname/api/nuget/nuget/ -u login:password -F "package=@/home/nugetFiles/shay-1-test.2.1.0.nupkg"

我在HTTP请求采样器的“文件上载”选项卡中尝试了以下添加的文件路径,未成功尝试将HTTP头管理器作为子项添加,并尝试通过 HTTP头管理器上传多个具有不同内容类型的变体项目。

  • 应用程序/ x-nupkg;
  • 应用/八位字节流;
  • 的multipart / form-data的;边界=" 6aec860d-8c85-4cea-854e-a051e77873c4&#34 ;;

和内容处置值

  • 内容 - 处置:表单数据;命名=包;文件名= package.nupkg;文件名* = UTF-8'' package.nupkg

HTTP标头管理器还具有 X-NuGet-ApiKey

我还发现该文件应该添加到请求体中,但我不知道该怎么做。

请帮忙。

2 个答案:

答案 0 :(得分:0)

只需记录您的上传请求即可。

  1. shay-1-test.2.1.0.nupkg复制到JMeter安装的“bin”文件夹
  2. 配置JMeter进行录制。最简单的方法是使用JMeter Templates功能

    • 从JMeter的主菜单中选择File -> Templates -> Recording,然后点击“创建”
  3. 打开HTTP(S) Test Script Recorder,然后点击“开始”
  4. 执行CURL request through JMeter's proxu之类的:

    curl -x http://localhost:8888 -XPUT http://hostname/api/nuget/nuget/ -u login:password -F "package=@/home/nugetFiles/shay-1-test.2.1.0.nupkg"
    
  5. 应该是这样,记录的请求将存在于Thread Group -> Recording Controller
  6. 之下

答案 1 :(得分:0)

根本原因如下 - 我使用的是Jmeter 3.3,最新发布的版本是4.0。根据NuGet客户端所需的this bug multipart / form-data传输 - 在Jmeter中不能用于PUT方法。

我已经检查了一个稳定的主干Jmeter版本(apache-jmeter-r1831500.zip)取自here并且能够部署Nuget包。

作为一种解决方法,可以使用bash命令通过 OS Process Sampler 创建测试。

感谢大家的帮助。