一、 代理服务器操作流程

Jmeter(5.2.1) 代理服务器录制脚本
1.设置浏览器代理(360浏览器为例)
Jmeter(5.2.1) 代理服务器录制脚本
注意端口和jmeter里面端口设置一致。地址和端口不是固定的。
2.启动代理服务器
a.先添加HTTP代理服务器,端口要和浏览器配置端口一致;
b.目标控制器选择建立好的线程组
注意:Jmeter5.2.1 启动代理服务器,会弹出一个框。(prefix:前缀名称,运行的时候可以看到)
Jmeter(5.2.1) 代理服务器录制脚本
Jmeter(5.2.1) 代理服务器录制脚本
c.去除不必要的模式;
Jmeter(5.2.1) 代理服务器录制脚本
Jmeter(5.2.1) 代理服务器录制脚本
3.然后启动代理服务器,操作浏览器,可以看到很多运行的东西;
Jmeter(5.2.1) 代理服务器录制脚本
最后添加查看结果树;
这里遇到问题:
返回的结果unicode编码没有转义。发现只有以下方法有效:
第一步:将JMeter的bin目录下的配置文件jmeter.properties打开,大概在1022行,找到#sampleresult.default.encoding=ISO-8859-1,改成sampleresult.default.encoding=utf-8;
第二步:在HTTP请求下添加后置处理器,如图:
Jmeter(5.2.1) 代理服务器录制脚本
粘贴下面代码,保存,运行;代码如下:
String s=new String(prev.getResponseData(),“UTF-8”);
char aChar;
int len= s.length();
StringBuffer outBuffer=new StringBuffer(len);
for(int x =0; x <len;){
aChar= s.charAt(x++);
if(aChar==’\’){
aChar= s.charAt(x++);
if(aChar==‘u’){
int value =0;
for(int i=0;i<4;i++){
aChar= s.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());

注意:录入https需要导入Jmeter证书,在Jmeter目录bin下面
ApacheJMeterTemporaryRootCA.crt

相关文章:

  • 2021-09-26
  • 2022-12-23
  • 2021-09-28
  • 2021-09-21
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2021-07-26
  • 2021-07-05
  • 2021-09-01
  • 2022-12-23
  • 2021-06-08
相关资源
相似解决方案