jmeter测试HTTP文件上传实例

POST 
/api//uploadPersonHealthRepor1 
Llæ multi fu POST 
ble 
Parameters Body Data Files Upload 
ersonexcel ath 
MIME* : 
upLoadFile 
applicationNnd.ms-excel

 

1、分析系统并发数的列子 

假定每天从该站乘坐地铁的人数为5万人次,每天的早高峰为7-9点,晚高峰为6-7点,根据8/2原则,80%的乘客(人次)会在高峰期乘坐该站的地铁,则平均每秒到达地铁检票口的人数为(50000×80%)/(3×60×60) = 3.7~=4人,当然这个4人不能作为计算所用的并发值,因为对此时的受压入口检票口来说,4只是每秒到达的压力(即请求)数量,考虑到安检、入口关闭等因素,实际堆积在检票口的人数可能要大于这个数目,假定每个人需要3秒左右才能入站,则实际并发应该为(4人/秒)×3秒=12。当然我们必须指出,这种方法得到的情况并非极端值,因为即使作为早晚高峰,人数的分布也不是平均的(具体情况需要根据实际数据进行分析),但对大部分系统的大部分场景,我们可以用(用户总量/统计时间)×影响因子(一般为3,为经验系数)来进行估算。 

 

2、注意:1、为了上传文件,必须设置Use multipart/form-data for POST,否则request将不包含上传的文件。 

3、另外,必选添加文件的参数名称,否则在Server段用Servlet进行解析时,无法获得文件。 

如: 

将待上传文件路径参数化,即将待上传文件路径保存到一个.csv文件或.dat文件里面 

“同请求一起发送文件”参数化待上传文件。参数名称写当前页面请求的实际参数名称,不清楚可以到Badboy录制脚本时查看。MIME类型写实际录制脚本上传文件的类型,这里是application/vnd.ms-excel,更多参考百度。注意:参数化的文件路径和文件名称不用中文用英文,以防出现乱码,读取不到文件。 

 

4、错误:图上的方式,每次运行只能调用到一次文件,录制脚本也是一个参数fileField,所以图上参数方式是错误的,所以要将上传文件参数化,即将待上传文件进行路径参数化。 

AM from Dywn 
Clapache-jmeter-210ibinlC1is 
Clapache-jmeter-210ibir,lC2És 
hleField 
hleField 
application'm 
applicationlm

 

正确:上传文件实例:路径参数化,把你要上传的文件的路径写在这个csv文件里面.dat文件,像数据参数化一样,只是这里的文件内容是待上传文件路径参数,而其他地方写的是要上传数据的字段,如DDS中创建账户的参数化方式。 

 

5、然后如果你是一个thread,上传的request是放在loop controller下的,你把loop count写成你要上传的次数,那么结果是它会多次上传,但是每次都只上传第一个文件。 

如果改成这样就可以: 

要上传3个文件,那就把thread,改成并发为3,那第一个thread会上传第一个,第二个thread上传第二个文件,第三个thread会上传第三个 

6、把你要上传的文件的路径写在这个csv文件里面dat文件都可以 

 

 

7、如果感觉发现脚本设置无错,录制无错,但是就是没成功,尝试检查是否哪里写错参数文件名或少写了什么括号},是否参数名称错误等,检查脚本正确的参数名称可以通过Badboy检查 

http://lll L 24B:g080/czzW 
/cZZH/10gin/10ginei do 
/CZZH/fdacco 
/CZZH/fdacco 
/CZZH/fdacco 
_iUp10ad_Fr 
/CZZH/fdacco 
/CZZH/fdacco 
/CZZH/fdacco 
/CZZH/fdacco 
lmt/query do 
1mt/aja_xGetLogState d 
1mt/aja_xFiIelJpIoad d 
lmt/querydatz do 
1mt/aja_xGetLogState d 
1mt/aja_xGetLogState d

 
那个参数名称就写实际的从参数名称,这里叫filename 

 

 

Get方法对服务器没什么压力,不用测试并发 

 

系统用户数与同时在线人数 

  在实际的性能测试中,经常接触到与并发用户相关的概念还有系统用户数同时在线人数下面通过一个实例来描述他们之间的差别。 

  假设有一个网站,注册用户才能登录使用各种功能,如上传头像,阅读专家文章等。该系统有20万注册用户,这就是说有20万用户可以使用这个网站的所有功能,20万就是这个网站的“系统用户数”,网站有一个在线统计功能,从统计数据中可以看到,同时登录网站的人数的最高记录是2万,就是有2万人同时用浏览器打开着这个网站。2万就是“同时在线人数” 

  那么系统的并发用户数是多少呢?2万么?NO!2万只表示在系统最高峰时有这么多用户登录了网站,并不表示实际服务器的承受压力。因为服务器承受压力还与具体的用户访问模式相关,在这2万用户中考察某一个时间点对用户发出请求数,可以会大大缩水。那么,该系统的服务端承受的最大并发访问数是多少呢?这个取决于业务并发用户数和业务场景,一般可以通过服务器日志的分析得到。 

 

求并发用户数公式 

在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务的角度关注应该设置多少个并发数比较合理。 

下面找一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算。 

    C=1000/30*5=166.7 

C表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为166 

当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确的分析。 

posted @ 2017-11-28 13:09  春田花花同学会  阅读(7779)  评论(0编辑  收藏  举报