Jmeter测试上传图片base64编码接口

最近遇到一个项目,接口中有须要上传图片的字段,它是以图片base64编码格式的形式传递的。(Base64目前主要用于HTML五、移动开发等不考虑IE6的场景中。)请求报文示例以下:css

Jmeter测试上传图片base64编码接口

关于如何测试实现的问题:

1)如何对图片进行编码?
2)为了实现接口自动化测试,如何能实现自动base64编码html

解决方案:shell

方法1:利用图片在线转码base64编码网站进行编码。
编码网站:http://tool.css-js.com/base64.html
Jmeter测试上传图片base64编码接口服务器

上传本地图片,根据须要勾选:“包含头”等选项,生成图片base64编码便可。ide

缺点:测试不一样的图片时,都须要手工进行编码,再复制编码到接口请求报文中,没法实现自动化,测试效率低。测试

方法2:利用Jmeter的beanshell编写图片base64编码的转换代码
1)编写图片base64编码代码
通常状况,开发会提供该代码;若是没有,也不用怕,百度一下便可,或者有代码功底的同窗可本身写。部分代码以下:网站

Jmeter测试上传图片base64编码接口

2)生成jar包,放置在${JMETER_HOME}\lib\ext目录下编码

3)编写beanshell,调用编码方法进行编码
Jmeter测试上传图片base64编码接口orm

4)参数化请求报文
Jmeter测试上传图片base64编码接口htm

实际请求报文:
Jmeter测试上传图片base64编码接口

此方法较好的解决了手工图片base64编码的问题,为后续的自动化测试提供支持。

扩展一下:若是上传图片不是以base64编码的格式,即以图片文件的方式进行发送请求报文时,该如何处理?

解决方案:利用jmeter的sampler中“同请求一块儿发送文件”的功能
Jmeter测试上传图片base64编码接口

a、点击【同请求一块儿发送文件】栏目的添加按钮;
b、点击浏览按钮,选择一张须要上传的图片,地址将会自动记录到文件名称栏目;
c、填写参数名称,此处为【image】;
d、MIME类型为multipart/form-data

(注意:另一种设置就是>为了上传文件,还必须勾选"Use multipart/form-data for POST",而后MIME类型可根据实际状况填写,不然request将不包含上传的文件。)

保存该HTTP请求,并执行,查看服务器,便可发现,上面步骤选择的图片已经成功上传到服务器。如需进行图片参数化,只需对图片的路径进行参数化便可。

相关文章
相关标签/搜索