jmeter使用笔记
生成测试报告(类似LR的测试报告)
jmeter.bat -n -t 线程组.jmx -l csvlog.log -e -o Report
引用jar包
将自己开发的java文件生成jar包引用到jmeter中可以实现jmeter无法实现的一些功能,例如加密等
方法:
1、较为规范的方法:将jar包文件放入jmeter的解压目录下的lib/ext下,之后在jmeter的GUI界面中的测试计划选项中测试计划,在测试计划中最下方的library中加入自己要用的jar包,之后再脚本中引入需要使用的jar包比如:
import xxxx
xxxx.xxx.xxx(和java中调用方法的用法一致)
2、比较随意的方法:将jar包随意放置位置,使用方法与上面一致。
BeanShell的使用
在前置选择器中选择beanshell,加入该选项,其中语法与java一致,传递参数使用vars.put("名称",名称)、获取参数使用vars.get("名称",名称)
注:使用java传递参数是,参数需要进行URL编码
转换Unicode编码
//获取响应代码Unicode编码的
String s2=new String(prev.getResponseData(),"UTF-8");
//---------------一下步骤为转码过程---------------
char aChar;
int len= s2.length();
StringBuffer outBuffer=new StringBuffer(len);
for(int x =0; x <len;){
aChar= s2.charAt(x++);
if(aChar=='\\'){
aChar= s2.charAt(x++);
if(aChar=='u'){
int value =0;
for(int i=0;i<4;i++){
aChar= s2.charAt(x++);
switch(aChar){
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
value=(value <<4)+aChar-'0';
break;
case'a':
case'b':
case'c':
case'd':
case'e':
case'f':
value=(value <<4)+10+aChar-'a';
break;
case'A':
case'B':
case'C':
case'D':
case'E':
case'F':
value=(value <<4)+10+aChar-'A';
break;
default:
throw new IllegalArgumentException(
"Malformed \\uxxxx encoding.");}}
outBuffer.append((char) value);}else{
if(aChar=='t')
aChar='\t';
else if(aChar=='r')
aChar='\r';
else if(aChar=='n')
aChar='\n';
else if(aChar=='f')
aChar='\f';
outBuffer.append(aChar);}}else
outBuffer.append(aChar);}
//-----------------以上内容为转码过程---------------------------
//将转成中文的响应结果在查看结果树中显示
prev.setResponseData(outBuffer.toString());
如何设置固定QPS
添加组件Constant Throughput Timer
参数说明:Target throughput 设置每分钟可以达到的吞吐量,注(以分钟为单位)
calculate Throghput based on 作用域(一般选择 all active threads)
网友评论