装备质检接口性能测试
接口功能:输入一张闪送员照片,输出图片中的闪送员是否合格
接口说明:
curl -i -k "http://ip:port/check_image" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" --data-urlencode "b64=`base64 【图片目录】/0.jpg`"
请求参数
响应结果:
1、准备环境和数据
闪送员上传的照片大小对性能有影响,所以准备了四组不同大小的照片。照片来自人工审核图库,且分别挑选审核通过和不通过的照片,比例1:1
照片从图库copy来是这样子的,所以首先想批量命名一下照片
shell脚本如下:
i=1
for var in *.jpg;
do mv "$var" "${i}.jpg"; i=$(($i+1));done
for var in *.JPEG;
do mv "$var" "${i}.jpg";i=$(($i+1)); done
命名完之后是
然后是将图片转换成base64的格式,并对参数进行URL转码,保存在文件中,一张图片对应一个文件
写了一段java代码
import sun.misc.BASE64Encoder;
import java.io.*;
public class CheckImage
{
public static String getImageStr(String imgFile) {
InputStream inputStream = null;
byte[] data = null;
try {
inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
public static void main(String[] args) {
for(int i =1;i<=30;i++){
String strImg = getImageStr("/Users/yiqin/Documents/基础服务/闪送员装备智能质检/300k/"+i+".jpg");
//System.out.println(strImg);
String result = java.net.URLEncoder.encode(strImg);
try {
PrintWriter pw = new PrintWriter(new File("/Users/yiqin/Documents/基础服务/闪送员装备智能质检/300k/data300k/"+i+".txt"));
pw.println("b64="+result);
pw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
转码后的文件
2、测试脚本
用一个random函数随机取文件
上面的步骤看起来有点复杂,可以改进成:写一个通用的类,传入照片路径和保存转码后文件保存路径,自动获取目录下图片的个数,通过转码命名后保存。将类打包成jar,通过JMeter调用。