前言
我们在做接口自动化测试时,Content-Type往往放在测试计划或者线程组里共用(大多都是application/json),避免了每个请求都需要添加请求头。然而,当遇到multipart/form-data格式(文件图片上传等)时缺无法处理冲突问题。此文章记录通过BeanShell 预处理程序清空Content-Type设置的application/json,
问题描述
1、Content-Type= application/json,设置在了测试计划的公共信息头。在图片上传接口(需要Content-Type=multipart/form-data)时,共用了Content-Type= application/json导致操作结果报错。
必定能解决的方法,把Content-Type= application/json放在每个请求中,但是这样一样一来,每个请求都需要加入“Content-Type= application/json”HTTP信息头管理器,本共用的东西变成冗余
解决方法
1、BeanShell 预处理程序处理公共的Content-Type,思路为删除公共的Content-Type,放在具体的请求中
import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed(“Content-Type”);