目录
背景描述
很多时候进行接口测试或者性能测试时,只需要测试业务某个接口,但是接口又需要身份认证,而身份证认证的接口主要是登录接口。如果不需要测试登录接口,没有必要每次都要使用登录接口返回的身份信息。
解决方法
1.将登录接口返回的关键信息使用正则表达式或者json提取工具提取后,存储到文件。
2.编写java代码,提供保存文件的方法,方法提供传递的保存文件的路径参数和存储数据的参数。
3.将编写好的代码进行导出jar包,在jmeter中引用该jar后,调用保存文件的方法。
编写测试代码
编写代码后,将该代码导出成为一个jar包。
package com.data.tools;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExportData {
public String filePath = null;
public File exportFile = null;
public File fileParent = null;
public BufferedOutputStream bos = null;
public FileOutputStream fos = null;
public File downloadFile = null;
public void exportFile(String filePath, byte[] exportFileByte) {
this.filePath = filePath;
exportFile = new File(this.filePath);
fileParent = exportFile.getParentFile();
if (!fileParent.exists()) {
fileParent.mkdirs();
}
try {
if (!exportFile.exists()) {
exportFile.createNewFile();
}
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
fos = new FileOutputStream(exportFile,true);
bos = new BufferedOutputStream(fos);
bos.write(exportFileByte);
System.out.println("......download file......");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException fos) {
fos.printStackTrace();
}
}
}
}
}
编写测试脚本
引入自定义类jar包
点击Browse按钮,引入保存数据到文件的jar包
登录脚本
将登录接口返回的数据提取出token和userid字段数据保存到本地文件中。提取token和userid数据主要是使用JSON Extractor
步骤1是登录脚本,步骤2 是将步骤1保存文件进行读取,获取用户的token和userid信息
使用JSON Extractor组件,提取需要保存的数据字段
使用JSON Extractor组件,提取token
使用JSON Extractor组件,提取userid
调用引入jar包的方法进行数据保存到文件中
获取数据脚本
根据已有的token和userid数据文件,从文件中读取数据后,进行使用逗号分割,并且将其存在变量中,然后附加到请求接口头部。
设置需要读取的数据文件,以逗号分割,将数据存储在各个字段中
将提取的是token和userid数据附加的澳请求头
进行接口测试。