![cover](https://img-blog.csdnimg.cn/1b295a512c5f44d19fd359414e5f1064.png)
jmeter编写测试脚本大全
jmeter编写测试脚本大全。使用jmeter编写脚本时,有好多注意事项,也写好了好多博客,但是很散。这次统一整合一下。
目录
3.1.5 请求 /xxx/xxxx/getSession获取 token与key
3.1.6 请求 /xxx/xxx/getVerificationCode?token=${token}获取验证码
一、背景
使用jmeter编写脚本时,有好多注意事项,也写好了好多博客,但是很散。
这次统一整合一下。
二、按照功能划分
2.1 加密处理、验签处理
jmeter脚本处理加密验签_jmeter加密_做测试的喵酱的博客-CSDN博客
2.2 jmeter 使用beanshell 编写脚本
jmeter 使用beanshell 编写脚本_beanshell脚本_做测试的喵酱的博客-CSDN博客
2.3 jmeter脚本报错大全
jmeter写脚本报错大全_jmeter录制报错_做测试的喵酱的博客-CSDN博客
2.4 jmeter打印log
jmeter脚本调试_jmeter调试_做测试的喵酱的博客-CSDN博客
2.5 jmeter压测java代码
jmeter 压测java代码_jmeter压测java代码_做测试的喵酱的博客-CSDN博客
2.6 jmeter读取数据保证每个线程拿到的数据唯一
jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客
2.7 jmeter设置并发量线程数为变量
jmeter设置并发量线程数为变量_做测试的喵酱的博客-CSDN博客
2.8 beanshell 将数据写入到本地txt
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
BufferedWriter writer = new BufferedWriter(fileWriter);
String TOKEN = vars.get("token");
writer.append(TOKEN+"\r\n");
writer.close();
fileWriter.close();
data_file_path_token 为本地文件的路径
2.9 beanshell 读取本地txt
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
String data_file_path = "/xxx/user.txt";
FileReader filereader = new FileReader(new File(data_file_path));
BufferedReader reader = new BufferedReader(filereader);
String line = reader.readLine();
reader.close();
filereader.close();
三、按照场景划分
3.1 登录场景
3.1.1 背景
整个登录场景,是由三个接口组成的。
1、获取token 与 key
/xxx/xxxx/getSession
2、获取图片验证码
需要拿着1中的token去获取图片验证码。
/xxx/xxx/getVerificationCode?token=${token}
3、将1中获取的token,放到header里。
将1中获取的key用来对密码加密
这个请求header中,还需要生成一个验签。
/xxx/xxx/login
3.1.2 整体脚本结构
3.1.3 参数化
参数化的处理:循环控制器+CSV数据文件设置
jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客
3.1.4 HTTP信息头管理器
信息头中,很多都是变量。token 、key、验签sign 都是变量。
3.1.5 请求 /xxx/xxxx/getSession获取 token与key
直接去/xxx/xxxx/getSession,然后在返回值中,提取token与key
1、http请求
2、提取token
3、提取 key
3.1.6 请求 /xxx/xxx/getVerificationCode?token=${token}获取验证码
开发将登录的时候,验证码写死了一个固定值。
getVerificationCode?token=${token} 请求,需要带着上一个请求提取的token
1、http请求
3.1.7 /xxx/xxx/login
进行登录 /xxx/xxx/login
1、login请求中的参数,是需要经过加密处理的。
所以设置参数为消息体。消息体为一个变量${param}
2、预处理来处理header与传参数
header所需的信息,传参所需要的信息。都在预处理中,进行处理。最后将我们所需要的token、sign、param吐出来。
jmeter脚本处理加密验签_jmeter加密_做测试的喵酱的博客-CSDN博客
3.2 查询商品详情
3.2.1 背景
查询商品的详情,避免缓存问题,要使用参数化,根据不同的商品id去查询商品详情
/xxx/xxx/commodity?id=${id}
3.2.2 整体结构
3.2.3 信息头管理
我们用同一个用户信息,去查询不同商品的详情。所以这里信息头写死就好了。
3.2.4 参数化处理
jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客
3.3 获取批量token,并写到本地文件中
3.3.1 背景
我需要获取2万个用户登录后的token,写到 本地txt文件中。
3.3.2 脚本结构
3.3.3 用户自定义变量
这里定义了我们写入txt文档的路径
3.3.4 循环控制器
想要获得20000个token,就要登录20000个不同的用户。这里使用循环控制器读取20000个不同的用户信息。
jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客
3.3.5 登录请求
1、信息头管理器
注意,这个信息头管理器的位置,要在login请求里面。
2、预处理器
处理登录的加密、验签等。千万不要勾选脚本编译缓存。
3、提取token
4、后置处理器,将拿到的token写入到本地文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
BufferedWriter writer = new BufferedWriter(fileWriter);
String TOKEN = vars.get("token");
writer.append(TOKEN+"\r\n");
writer.close();
fileWriter.close();
注意:
为了避免缓存影响,最后选择True.
3.4 查询不同用户个人信息
3.4.1 背景
需要使用2000个用户的token,然后去查询个人信息。
正常 逻辑,就是先去登录,登录成功后再去获取个人信息。
但是这样的话,获取个人信息接口的tps 要受到登录接口性能的影响。
登录只能支持30个并发,但是查询个人信息接口要测试100个并发。
所以只能先将登录成功后的信息写到本地,然后再去读取本地登录的token 去请求个人信息接口。
3.4.2 整体结构
3.4.3 循环控制器
读取2000个token,且保证每一个线程取到的token是唯一的。
3.4.4 信息头管理
信息头管理器,要在请求的里面。
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)