jmeter上传文件
·
目的:用jmeter测试MultipartFile上传多个文件
今天用jmeter测试上传文件的时候遇到点问题,以此博客作为记录,同时也让大家少走弯路。
1.加入文件上传的jar包
<!-- 文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>2.在spring-mvc.xml中配置MultipartResolver处理器
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10240000" />
</bean>3.jmeter配置如下, use multipart/form-data for post打勾,同时MIME类型设置为multipart/form-data,参数名称必须和controller中的名字一致,另外不需要再画蛇添足添加信息头的设置
4.controller如下
public Result getPics(HttpServletRequest request,@RequestParam(value = "file", required = false)MultipartFile[] file) {
System.out.println("进来了————————————————");
Result<String> result = new Result<String>();
// 身份证识别url
String idcardIdentificate = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard";
System.out.println("长度:"+file.length);
if(file!=null&&file.length==2){
//循环获取file数组中得文件
for(int i = 0;i<file.length;i++){
MultipartFile files = file[i];
byte[] imgData;
try {
imgData = files.getBytes();
String imgStr = Base64Util.encode(imgData);
System.out.println("base64St:"+imgStr);
//身份证正面
if(i==0) {
String params = "id_card_side=front&" + URLEncoder.encode("image", "UTF-8") + "="
+ URLEncoder.encode(imgStr, "UTF-8");
String accessToken = "#####调用鉴权接口获取的token#####";
JSONObject idcardResp= JSONObject.parseObject(HttpUtil.post(idcardIdentificate, accessToken, params));
String status = idcardResp.get("image_status").toString();
String cardType=idcardResp.get("risk_type").toString();
//身份证读取不正常
if(!"normal".equals(status)||!"risk_type".equals(cardType)) {
result.setError(status,BaiduErrorConstant.errorMap.get(status));
result.setData(idcardResp.toString());
return result;
}
}
//身份证背面
else {
String params = "id_card_side=back&" + URLEncoder.encode("image", "UTF-8") + "="
+ URLEncoder.encode(imgStr, "UTF-8");
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}更多推荐
所有评论(0)