示例场景:通过批量的sessionid获取用户信息,通过“BeanShell Sampler”将用户信息写入指定文件
我们在小程序性能测试过程中,一般需模拟大用户量并发请求情况,所以需要获取不同用户的SessionId,然后通过SesionId获取用户的其它信息,如uid、codeId等,以防止用户量过少导致无法均衡命中所有后台服务器,使测试结果能真实反映服务器性能。所以在测试执行之前,我们需要批量的获取用户数据,用于待测接口的请求传参。
使用Jmeter可以简单、快速的实现数据的读写,主要步骤如下:
(1)通过“CSV Data Set Config”配置元件批量读取数据;
(2)通过“JSON Extractor”后置处理器提取响应的用户信息并参数化;
(3)通过“BeanShell Sampler”取样器写数据到指定的CSV或txt文件中(压测人员可利用此文件循环执行多用户请求)。
1.新建SessionId.csv文件,添加一列SessionId数据(sessionid可通过运维人员获取)
2.在Jmeter中添加“线程组”->“Add”->“Config Element”->“CSV Data Set Config”
3.配置“CSV Data Set Config”
1.在Jmeter中,选中“HTTP Requset”并添加“JSON Extractor”
2.配置“JSON Extractor”,提取uid、codeId、zoning
3.添加“Debug Sampler”取样器,获取运行Debug信息,检查是否正确提示数据
4.配置好线程组和添加“View Results Tree”信息后,点击运行按钮
1.在Jmeter中选择线程组,添加“BeanShell Sampler”取样器
2.在“BeanShell Sampler”中,添加写文件Script
注:Linux中的文件路径是一个反斜杠“\”,windows中的文件路径是两个反斜杠“\\”,要不然运行时会报错。
Script代码如下:
//指定需要写入到哪个文件,格式:txt,csv
FileWriter file = new FileWriter("E:\\userInfo.csv",true);
//创建一个字符缓存输出流
BufferedWriter out = new BufferedWriter(file);
//写文件内容,vars.get:获取 jmeter 中的变量值
out.write(vars.get("sessionid")+","+vars.get("uid")+","+vars.get("codeId")+","+"440100"+"\n");
//关闭写数据流
out.close();
//关闭文件
file.close();
3.配置线程组,执行后可循环写入数据到userInfo.csv
运行结果如下:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。