在接口性能测试中,准备相关的业务数据是件比较繁琐的事情,保证数据准确和快速生成,可以提高性能测试效率。我们可以通过jmeter测试相关的业务接口然后将结果写入到文件或者数据库中,方便我们获取压测需要的数据。
我使用的jmeter版本是3.3,需要jdk版本1.8
一 新建http请求
1 新增http头信息管理和http报文体
输入http请求需要的头信息和报文体如下图:
http头信息
报文体:
2 点击"鉴权绑卡"->"添加"->"断言"->"响应断言"
3 点击"鉴权绑卡"->"添加"->"监听器"->"察看结果树"
二 参数化数据
1 准备需要参数化的文件
2 点击"鉴权绑卡"->"添加"->"配置元件"->"CSV Data Set Config"
* FileName:csv文件的名称及路径 * File Encoding: 文件编码----默认为空 * Varible Names: 定义文本文件中的参数名,定义后可当变量的方式来引用 * Ignore first line(only used if variable name is not empty):忽略第一行(仅使用变量名不是空的)----默认为false,如果含有列头设置为true * Delimiter:分隔符---每个参数之间的分隔符号,一般默认使用逗号, * Allow Quoated data: 允许数据引--- * Recycle on EOF: 文件结束循环----设置为True后,允许循环取值 * Stop Thread on EOF: 文件结束后停止线程------默认为false,如果设置为True则会影响文件结束循环 * Sharing Mode: 设置线程是否共享---默认设置为All threads
三 前置处理和后置处理
顾名思义,前置处理和后置处理分别是每笔请求之前和之后需要做的一些处理,这里我们主要介绍前置处理和后置处理
1 前置处理
"鉴权绑卡"->"添加"->"前置处理器"->"BeanShell PreProcessor"
参数化变量
运行结果
2 后置处理
2.1需要提取请求后返回的token
"鉴权绑卡"->"添加"->"后置处理器"->"正则表达式提取器"
2.2 将返回结果和需要的内容写入到文件中
"鉴权绑卡"->"添加"->"后置处理器"->"BeanShell PostProcessor"
写入代码,如果不存在文件则新增,如果存在则使用。文件是追加的。
import java.io.FileWriter; import java.io.IOException; String uid = vars.get("uid"); String mobile = vars.get("mobile"); String bankid = vars.get("bankid"); String idcard = vars.get("idcard"); String token = vars.get("tokenn_g1"); String content = uid+","+mobile+","+bankid+","+idcard+","+token; String fileName = "E:\test.txt"; FileWriter fw = new FileWriter(fileName, true); fw.write(content); fw.write(" "); fw.close();
四 运行程序查看结果
1 设置线程20,循环次数为永远,跑完数据为止(和参数化数据配置有关系)
2 "线程组"->"添加"->"监听器"->"聚合报告"
3 到目录下查看文件生成了我需要的一组数据
后续:
jmeter执行结果内容写入数据库