在cmd中输入CHCP 65001 即可
原著:https://blog.csdn.net/u012282382/article/details/86635878
如下有中文的情况下没有问题。
二、打开Cookie管理器管理器。
三、设置参数路径不用改。
1、设置目录的好处,就是文件路径可以使用相对路径,这样可以跨系统(window、linux),跨平台而不用修改路径
data(保存参数)、result(保存结果)、script(保存脚本)
2、要在用户变量中设置一个变量path,值 ../data/ 的意思代表当前目录往上一个目录
3、注意:使用jmeter进行编写脚本时,往往会遇到接口需调用cookie的问题,新下载使用jmeter时默认Cookie管理器是关闭的,
第一步:
在Jmeter 安装目录bin文件下找到jmeter.properties文件,打开该文件,进行搜索CookieManager.save.cookies=
将CookieManager.save.cookies=false,false修改成true,注意前面的#号也需要删掉。
(提示:不要修改文件名称,路径固定了,打开使用就行,不需要在修改参数路径。)
data :存放用户账号参数
result:保存结果
script:存放脚本
已经安装jdk1.8可以直接打开我这个jmeter直接使用,不需要设置。
四、各种资料总结
jmeter参考资料:https://blog.csdn.net/qq_35705138
1、跨线程传参数:(全局变量)
右键点击获取文件流的请求,点击右键》添加》后置处理器》BeanShell PostProcessor
BeanShell 后置处理程序;参数${token}
${__setProperty(aa,${token},)};
调佣:${__P(aa)}
2下载文件保存
二、编写beanshel脚本获取文件流保存
右键点击获取文件流的请求,点击右键》添加》后置处理器》BeanShell PostProcessor
代码如下:
import java.io.*;
import org.apache.jmeter.services.FileServer;
byte[] result = prev.getResponseData(); //用来获取返回的文件流
String str = FileServer.getFileServer().getBaseDir(); //获取脚本执行目录,我是在script目录下执行的脚本
str = str.replace("script", ""); //将目录去掉script
String file_name = str+"data//${__time(,)}.cgzbwj"; //拼接目录,把目录改成data下,这样保存的文件就在data目录下,time函数用来获取时间戳,这样保证每次下载名字不同
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result); //文件写入到文件
out.close();
2.1. 该脚本代码兼容windows、linux环境,前提是执行的脚本目录结构如下,脚本保存到script目录
注意:要新建三给文件夹
data
result
script(存放脚本的)
3、3. Linux环境:进入到ServerAgent目录,执行命令 sh startAgent.sh启动服务
在Windows下直接点击serverAgent.bat
1.Linux系统监控插件:上传serverAgent文件到服务器机器上
2.进入serverAgent文件目录,给文件授权
chmod u+x startAgent.sh
3.需要执行以下命令监控服务器:
sh startAgent.sh
即可执行startAgent.sh文件
4、2. 录制过程中,可能录制的请求参数会显示乱码,也需要在jmeter.properties文件添加sampleresult.default.encoding=UTF-8
包含模式:.*https://www.baidu.com/.*
录制排除模式:
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|eot|otf|ttf|mp4|woff|woff2|do|query)
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|eot|otf|ttf|mp4|woff|woff2|do|query)[?;].*
排除.js结尾类型的请求
.*.js
5运行jmeter脚本分析:jmeter -n -t rps.jmx -l summary.jtl -e -o report
jmeter -n -t denlu.jmx(脚本) -l summary.jtl(生成聚合报告) -e -o report(生成HTML报告) -J xx.og(输出日志)
6、参数化(用户参数、CSV 数据文件设置);关联(正则表达式提取器)[(.*?) $1$、调用${a}];
响应断言、JSON断言$.XX;同步定时器Synchronizing Timer(集合点)、固定定时器;事务控制器;超时时间5000,设置独立运行线程。
7、IP欺骗:http://www.51testing.com/html/48/291148-864399.html
jmeter -n -t D:\IDM\jmeter\dnelu.jmx -l D:\IDM\jmeter\jieguo.jtl -j D:\IDM\jmeter\dnelu100.log -e -o D:\IDM\jmeter\report
执行JMX脚本命令如下:
jmeter -n -t D:\IDM\jmeter\99.jmx -l D:\IDM\jmeter\summary.jtl -e -o D:\IDM\jmeter\report
8、时间截函数:${__time(,)} ;${__time(HH:mm:ss:SSS,time)}
9、随机函数${__Random(1,99999,)}
10、jmeter 参数化取唯一值方式(注意需要支持:36个字符)2.新建一个BeanShell Sampler;
添加如下代码:还可以用UUID来作为参数:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID(); //获取UID的值
vars.put( "transferNo" ,(uuid1.toString()).toUpperCase().replaceAll( "-" , "" ));
==============================================
//去掉UUID的“-”,再赋值给transferNo 运行获取的参数就是:3F2504E04F8911D39A0C0305E82C3301
//vars.put("transferNo",(uuid1.toString()).toUpperCase());
//这个就是不用去掉UUID的“-” 运行获取到的参数就是:3F2504E0-4F89-11D3-9A0C-0305E82C3301
11、jmeter 参数化取唯一值方式(注意需要支持:14个字符)2.新建一个BeanShell Sampler;
long timeStamp = System.nanoTime();
vars.put("timeStamp",timeStamp+"");
log.info("---------------------------------------"+vars.get("timeStamp"));
12、jmeter唯一标识参数化,自增函数(计数器),Starting value(启动)1,递增1,引用名称ji,${ji}
13、(1)、设置目录的好处,就是文件路径可以使用相对路径,这样可以跨系统(window、linux),跨平台而不用修改路径
data(保存参数)、result(保存结果)、script(保存脚本)
(2)、要在用户变量中设置一个变量path,值 ../data/ 的意思代表当前目录往上一个目录