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

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

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

1)如何对图片进行编码?

2)为了实现接口自动化测试,如何能实现自动base64编码?

2、解决方案

2.1、方法1:利用图片在线转码base64编码网站进行编码

如: 编码网站:http://tool.css-js.com/base64.html

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

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

2.2、方法2:利用Jmeter的beanshell编写图片base64编码的转换代码

1)编写图片base64编码代码

一般情况,开发会提供该代码;如果没有,也不用怕,百度一下即可,或者有代码功底的同学可自己写。部分代码如下:

2)生成jar包,放置在$\lib\ext目录下

3)编写beanshell,调用编码方法进行编码

4)参数化请求报文

实际请求报文:

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

3、扩展

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

3.1、解决方案:利用jmeter的sampler中“同请求一起发送文件”的功能

a、点击【同请求一起发送文件】栏目的添加按钮;

b、点击浏览按钮,选择一张需要上传的图片,地址将会自动记录到文件名称栏目;

c、填写参数名称,此处为【image】;

d、MIME类型为multipart/form-data

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180427G0UOPS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券