使用JMeter上传文件时遇到的问题(出现错误-导入无法启动-对象引用未设置为对象的实例)

时间:2018-08-08 09:04:44

标签: file-upload jmeter

通过JMeter上传文件时遇到问题。手动上传文件后,成功。该文件为CSV文件,其内容为:Mr.,Perf,Driver4,LIC1,10003,12 / 31 / 2025,12 / 31/2025,CA,USA

在提琴手中捕获的请求:

POST https://WebSiteName/MainPage/Drivers/UploadDrivers HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: https://WebSiteName/MainPage/Drivers/Main
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: multipart/form-data; boundary=---------------------------7e21cd231003b8
Accept-Encoding: gzip, deflate
Host: WebSiteName
Content-Length: 691
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: intercom-lou-zjtmncjn=1; __utma=1.1400002961.1527162610.1533116464.1533118526.10; __utmz=1.1527162610.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); MainPageusername=akalambe; MainPagerememberchkbox=true; __utmv=1.|1=FleetId=67468d0b-4f3d-4693-9d06-ed226d27198c=1^2=UserId=f0467301-c934-4354-87a1-d875f56359de=1^3=RegionName=FW02=1; __utmt=1; __utmb=1.2.10.1533118526; AWSELB=6703C92B1A36D2911BDDEF67F947B6D8FA09E46F7AB993BF5EEE818483244FFE1C5B9ED7D743F6F7966ACAFFC21671252299970FE39D531FCECB082F45AABB8B505FB5E6AA; __utmc=1; DirectorAuth=CDBE3FDB1C993ABF0A408A386AFEDC5DFA8B423E6B55F11100AC49D6DD5FB5D66721E8F3111D77E689ABAA72CF5D8E88A94C07F3F58B310CDCFD350A604038BF703448EA9E3E21F4F815E8288C781E64C6E1180FDF81426C1F3F24CF513E5C4026072351C5BEC06F0C28EBA57502937D551A7CEFA67BBAE5FF2C59137A33498B341ED0AD90B83919ACB0A1630B9C80AFC9992D7004C1DF9D7AE042420BE76EA2AB96D43A5E7F8956BDE18ACC8BE8AF813AE476A376F58C3750E3A02B8BC148006B427790F7AD8B7E88276D5CEAEC16D8624E7D087DB8D06AE7727DF4F71A6EB01798E119D71D13E8B6556F21CDB6B58D30FD0078D57E1E4C334F5600C72DA0A636F14529506298657A45E5BD009A556EDB6837BBEA1B26F71EF8304A4401F47B12785D5F; MainPageUserPreferredLocale=en-US; DirectorSession=oceg01jzjoqjq5iybq4mg3im


-----------------------------7e21cd231003b8
Content-Disposition: form-data; name="file"; filename="EntityImportTemplate.csv"
Content-Type: text/plain

Title,FirstName,LastName,LicenceClass,LicenceNo,ExpirationDate,LastPhysical,LicenceState(Abbreviated),"LicenceCountry(Abbreviations include: USA,CAN,MEX,AUS,NZ)"
Mr.,Perf,Driver4,LIC1,10003,12/31/2025,12/31/2025,CA,USA
-----------------------------7e21cd231003b8
Content-Disposition: form-data; name="Filename"

EntityImportTemplate.csv
-----------------------------7e21cd231003b8
Content-Disposition: form-data; name="OwnerId"

67468d0b-4f3d-4693-9d06-ed226d27198c
-----------------------------7e21cd231003b8—

在提琴手中捕获的响应:

{“ Success”:true,“ ImportMessages”:[{“ ErrorDescription”:“驱动程序已验证”,“ Tag”:null,“ TimeStampUtc”:“ / Date(1533123584180)/”,“ MessageType”:0, “文本”:“驱动程序已验证”}]}

但是在JMeter中,对于相同文件上传的响应是:

{“ Success”:false,“ ImportMessages”:[{“ ErrorDescription”:“导入无法启动-对象引用未设置为对象的实例。”,“ Tag”:null,“ TimeStampUtc”:“ / Date(1533717886829)/“,” MessageType“:2,” Text“:”导入无法启动“}]}

3 个答案:

答案 0 :(得分:0)

构建上传请求的方式非常不稳定,我建议使用HTTP Request采样器的Files Upload标签,并在其中指定CSV文件,例如:

JMeter File Upload

也不要忘记在Use multipart/form-data for POST框上打勾


通常,使用JMeter构建文件上传请求的最佳方法是使用HTTP(S) Test Script Recorder

进行记录
  1. 将您的EntityImportTemplate.csv文件复制到JMeter安装的“ bin”文件夹中
  2. 启动HTTP(S)测试脚本记录器
  3. 配置浏览器以使用JMeter作为代理
  4. 发布您的上传请求
  5. 相关的HTTP请求采样器应在Recording Controller
  6. 下创建

更多信息:Recording File Uploads with JMeter

答案 1 :(得分:0)

只需转到“高级”选项卡,然后选择“ Java”作为实现即可。我希望它可以正常运行。

答案 2 :(得分:0)

这主要取决于被测 Web 应用程序如何响应 Jmeter 脚本。

对我来说,有一次我尝试通过 Jmeter 上传 docx 并且它被上传到文件共享位置但抛出了一个错误 - “不支持文件格式”,即使按照推荐的正确上传 API 配置。

文件路径:filename.docx,参数名称:用于上传文档的UI元素的类名,例如按钮从磁盘浏览文件 MIME 类型:vnd.openxmlformats-officedocument.wordprocessingml.document 选择“使用 multipart/form-data”它成功运行,没有任何错误,文档内容未损坏,配置如下:

文件路径:filename.docx,参数名称:空白(是的.. 不要在此处为​​参数列提供任何值,只需将其留空) MIME 类型:vnd.openxmlformats-officedocument.wordprocessingml.document Deslect 'Use multipart/表单数据'