龙空技术网

利用fiddler+nginx模拟流量识别与转发

感悟软件测试开发 179

前言:

而今小伙伴们对“nginx日访问量统计”大致比较关心,兄弟们都想要了解一些“nginx日访问量统计”的相关知识。那么小编同时在网络上收集了一些关于“nginx日访问量统计””的相关资讯,希望你们能喜欢,咱们一起来学习一下吧!

全链路压测主要处理以下问题:

数据清洗

压测流量标记,识别

压测流量标记的传递

测试数据与线上数据隔离

等等...

要实现全链路压测,必然要对原有的业务系统进行升级,要怎么做才能尽量减小对原业务代码的影响?可以使用代理和中间件来对流量进行标识和转发。

1.利用fiddler script添加请求头

添加的请求头作为压测流量的标识在系统间传递。

点击进入fiddler script

在OnBeforeRequest()函数下添加以下语句:

oSession.oRequest.headers.Add("testmark","1");

保存script之后进行抓包,可以看到请求头里多了我们添加的字段:

2.nginx根据添加的请求头进行转发

打开nginx的配置文件nginx.conf,在location里添加如下语句:

server {

listen 80;

server_name xxx; xxx为服务器的ip地址

location / {

if ($http_testmark){

proxy_pass ;

}

}

}

这里要注意

1.if和左括号之间要有空格

2.使用$http_testmark,而不是$testmark,使用后者,nginx会启动失败,提示unknown variable

设置完毕之后,凡是带有“testmark:1”字段的请求都会被转发到ip:port。

全链路压测主要处理以下问题:

数据清洗

压测流量标记,识别

压测流量标记的传递

测试数据与线上数据隔离

等等...

要实现全链路压测,必然要对原有的业务系统进行升级,要怎么做才能尽量减小对原业务代码的影响?可以使用代理和中间件来对流量进行标识和转发。

1.利用fiddler script添加请求头

添加的请求头作为压测流量的标识在系统间传递。

点击进入fiddler script

在OnBeforeRequest()函数下添加以下语句:

oSession.oRequest.headers.Add("testmark","1");

保存script之后进行抓包,可以看到请求头里多了我们添加的字段:

2.nginx根据添加的请求头进行转发

打开nginx的配置文件nginx.conf,在location里添加如下语句:

server {

listen 80;

server_name xxx; xxx为服务器的ip地址

location / {

if ($http_testmark){

proxy_pass ;

}

}

}

这里要注意

1.if和左括号之间要有空格

2.使用$http_testmark,而不是$testmark,使用后者,nginx会启动失败,提示unknown variable

设置完毕之后,凡是带有“testmark:1”字段的请求都会被转发到ip:port。

标签: #nginx日访问量统计