微服务测试系列:微服务性能测试的关键——IP欺骗技术
微服务的负载策略
对微服务进行测试时,我们经常会遇到具备相同功能的服务被部署多点的情况,如下图所示:
上图中黄色功能被部署了五个点,绿色功能被部署了三个点,而一个请求访问哪个点是由负载策略来分配的,nginx做负载均衡时,主要3种负载策略如下:
轮询:按请求时间顺序逐一分配后端服务器,优点:负载均衡,缺点:不支持会话保持;
ip hash:能保证每个请求访问ip访问固定的后端服务器,优点:可解决session问题,缺点:可能出现负载不均情况;
sticky(推荐方案):是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上。优点:session保持,负载均衡。缺点:客户端请求时必须带有效cookie信息,如果浏览器不支持cookie,那么sticky不生效。
假设选择了ip hash这种策略,如果压力机不模拟多ip,nginx会把一台压力机发出的所有请求分配到一个应用上,这显然不是我么期望的!解决方法如下:
需要多台压力机,同时进行压测。
利用jmeter 的IP欺骗机制,使用一台负载机,模拟多ip发送请求,这里重点讨论该方案。
jmeter IP欺骗具体方案
在电脑上配置IP
在网络设置中添加需要模拟的IP,如下图:
点击上图中的高级,如下所示:
点上图中的添加,添加需要配置的ip即可,然后把新配置的IP保存到txt文件中,如下:
2.在jmeter中进行配置
前提:本文假设读者已经熟悉了jmeter的基 础操作。
添加csv数据文件,如下图:
CSV数据文件设置如下:
3.在HTTP请求默认值中应用ip参数
http请求默认值可以对所有的请求进行默认配置,进而减少需要对每个请求进行参数化配置的工作量。具体配置方式如下图所示:
在Advanced页面的Source address里引入文件设置配置页面中的变量值即可
运行脚本验证
并发运行测试脚本后,在请求树中查看请求的X-LocalAddress值,发现IP 已经发生了变化!
请求1如下图所示:
请求2如下图所示:
到这里我们已经完成了IP欺骗工作!
鲁德课程的几大亮点:
1、课程全部自主研发,学习以注重思路为主,而不是按部就班,报名赠送全套4本自编教材
2、实用性和系统性为主,学习内容覆盖了测试开发岗位95%的技能要求
3、学习效果有保障,学完的平均薪资涨幅在60%-200%
4、学习氛围好,同学和老师互动频繁
劲爆福利:为了更多的帮助徘徊在技能瓶颈边缘的IT人员摆脱技能的尴尬,薪资低迷的困境,又因为经济压力问题,无法通过学习课程跟着大牛学习少走弯路,鲁德10周年,拿出50个价值33800元全栈测试开发课程免费学名额,帮助更多的人有效提升技能,在测试开发路上越走越好!
抢名额通道:图片右下角报名二维码