一、什么是信息头?
其实就是请求头,它会随着我们的HTTP请求一起发送到服务器。
二、使用场景
需要传输cookie,token或其他某些信息,或是需要伪造请求头的时候。
三、实际案例
比如我在使用Apache Jmeter发送请求的时候,其实服务器会根据我的User-Agent来判断我是使用了什么工具进行请求发送。作为案例,我们就访问个百度主页吧,访问结果如下:
可以看到其实我们虽然发出去了请求,但服务器能够识别出来,我发的时候是使用了客户端Apache-HttpClient/4.5.12 (Java/1.8.0_144),这样发出去的请求是有可能会被服务器拦截的。而显然我们并不想这样,我们测试的时候需要的是尽量模拟真实的浏览器访问,所以我们要怎么办呢?这时候就需要用到今天的主角啦,信息头管理器。
首先我们打开浏览器并在F12中获取使用浏览器访问时使用的User-Agent,例如谷歌:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36
接下来我们在Jmeter中添加请求头管理器,将其添加到其中:
此时再次进行访问,便可以看到User-Agent伪造成功,我们现在的身份已经是一台浏览器啦,服务器接收到的请求就是我们通过一台浏览器向其发起了请求:
四、作用范围
如果放在HTTP请求下面,则它只对一个HTTP请求生效。如果放在线程组下面,则它对线程组下全部的请求生效。
梯度加压性能测试
我们在平时的测试工作中,可能会遇到一些比较偏向实际应用的测试场景,比如我们这边有一个这样的压力测试需求:
一开始启动0个线程,然后每隔30秒,就在5秒内启动10个线程,当总数达到100个线程后,再持续运行60秒,结束时每1秒停止5个线程。也即“梯度加压测试”。
面对这一类测试需求,我们可以采用Jmeter提供的海量插件来完成相应的测试工作。
例如我们的梯度加压测试,便可以使用JMeter 中的插件“Stepping Thread Group”来完成。
操作步骤贼简单,一共3步:
1.装个插件
下载链接在此:
https://jmeter-plugins.org/downloads/old/
是Jmeter官方提供的插件库,我们可以在里面下载到很多很多有用的辅助插件。
首先下载好今天所需的这款插件:
把下载好的JMeterPlugins-Standard.jar解压放在Jmeter的\lib\ext目录下,我的是:
E:\测试软件\JMeter\apache-jmeter-3.3\lib\ext,然后重启一下我们的Jmeter,就可以在线程组中看到崭新的小功能啦。
2.添加线程组
这步就不用说啦。
3.配参数
其中所涉及的参数如下:
This group will start __ threads:设置线程组启动的线程总数为N个;
First,wait for __ seconds:启动第一个线程之前,需要等待N秒;
Then start __ threads:设置最开始时启动N个线程;
Next,add __ threads every __ seconds, using ramp-up __ seconds:每隔M秒,在N秒内启动Q个线程;
Then hold load for __ seconds:启动的线程总数达到最大值之后,再持续运行N秒;
Finally,stop __ threads every __ seconds:结束时,每秒停止N个线程;
于是乎为了满足我们今天的测试需求,我们只需要这样设置:
(一开始启动0个线程,然后每隔30秒,就在5秒内启动10个线程,当总数达到100个线程后,再持续运行60秒,结束时每1秒停止5个线程。)
后面的步骤设置就和普通的压测一样,然后跑起来就是啦!
绵薄之力
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助,需要的朋友可以点击下方插件进群免费领取: