Jmeter测试下载excel接口返回值内容是否正确

前提:接口返回值为byte流

使用Document模式查看接口响应结果
Jmeter测试下载excel接口返回值内容是否正确_第1张图片
Document模式查看响应结果.png

注意:若不能使用Document直接查看,请下载tika-app-1.16.jar包,并将其放入jmeter的lib包下,重启jmeter即可。

此时我们可以查看到接口返回结果,但是此时我们需要使用beanshell断言帮助我们进行判断

-首先给要测试的接口添加beanshell后置处理器,如图
Jmeter测试下载excel接口返回值内容是否正确_第2张图片
添加后置处理器.png

添加代码如下:

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

//获取byte流并转换为sheet表
InputStream in = new ByteArrayInputStream(data);
Workbook srcWorkbook = Workbook.getWorkbook(in);
Sheet srcSheet = srcWorkbook.getSheet(0);

public static String createResult(Sheet srcSheet) throws BiffException, WriteException, IOException {

   String result  = "";

   // 遍历源工作表
   if (srcSheet != null) {
       // 获得行数
       int rows = srcSheet.getRows();
       // 获得列数
       int cols = srcSheet.getColumns();
       // 读取并写入数据
       for (int row = 0; row < rows; row++) {
           for (int col = 0; col < cols; col++) {  
            //判断标题          
            if (row==0){
                if (col==0 && !srcSheet.getCell(col, row).getContents().equals("第一列")){
                    result=result + "标题行【第一列】不正确,实际显示为【" + srcSheet.getCell(col, row).getContents() + "】;";
                }
                if (col==1 && !srcSheet.getCell(col, row).getContents().equals("第二列")){
                    result=result + "标题行【第二列】不正确,实际显示为【" + srcSheet.getCell(col, row).getContents() + "】;";
                }
                //省略其他判断逻辑…………
           }
       }
    }
   return result;
}

//将所有执行错误的结果放入result,若无错误则result为空,在断言时会进行判断
vars.put("result",createResult(srcSheet));

-对结果进行判断,给要测试的接口添加beanshell断言


Jmeter测试下载excel接口返回值内容是否正确_第3张图片
添加beanshell断言.png

代码添加如下:

 if(!"".equals("${result}")){
     Failure = true;
     FailureMessage = "${result}";
 }

若result结果不为空,则将Failure设置为true,即断言失败,返回错误结果

你可能感兴趣的:(Jmeter测试下载excel接口返回值内容是否正确)