微服务测试系列:微服务性能测试的关键——IP欺骗技术

Posted 鲁德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务测试系列:微服务性能测试的关键——IP欺骗技术相关的知识,希望对你有一定的参考价值。

微服务的负载策略

对微服务进行测试时,我们经常会遇到具备相同功能的服务被部署多点的情况,如下图所示:


上图中黄色功能被部署了五个点,绿色功能被部署了三个点,而一个请求访问哪个点是由负载策略来分配的,nginx做负载均衡时,主要3种负载策略如下:


  • 轮询:按请求时间顺序逐一分配后端服务器,优点:负载均衡,缺点:不支持会话保持;


  • ip hash:能保证每个请求访问ip访问固定的后端服务器,优点:可解决session问题,缺点:可能出现负载不均情况;


  • sticky(推荐方案):是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上。优点:session保持,负载均衡。缺点:客户端请求时必须带有效cookie信息,如果浏览器不支持cookie,那么sticky不生效。


假设选择了ip hash这种策略,如果压力机不模拟多ip,nginx会把一台压力机发出的所有请求分配到一个应用上,这显然不是我么期望的!解决方法如下:


  1. 需要多台压力机,同时进行压测。


  2. 利用jmeter 的IP欺骗机制,使用一台负载机,模拟多ip发送请求,这里重点讨论该方案。

 

jmeter IP欺骗具体方案

  1. 在电脑上配置IP  

在网络设置中添加需要模拟的IP,如下图:

微服务测试系列:微服务性能测试的关键——IP欺骗技术


点击上图中的高级,如下所示:

微服务测试系列:微服务性能测试的关键——IP欺骗技术


点上图中的添加,添加需要配置的ip即可,然后把新配置的IP保存到txt文件中,如下:

微服务测试系列:微服务性能测试的关键——IP欺骗技术

 

2.在jmeter中进行配置


前提:本文假设读者已经熟悉了jmeter的基 础操作。

  • 添加csv数据文件,如下图:

微服务测试系列:微服务性能测试的关键——IP欺骗技术

 

  •  CSV数据文件设置如下:

微服务测试系列:微服务性能测试的关键——IP欺骗技术


3.在HTTP请求默认值中应用ip参数

http请求默认值可以对所有的请求进行默认配置,进而减少需要对每个请求进行参数化配置的工作量。具体配置方式如下图所示:

微服务测试系列:微服务性能测试的关键——IP欺骗技术

 

在Advanced页面的Source address里引入文件设置配置页面中的变量值即可

微服务测试系列:微服务性能测试的关键——IP欺骗技术


 

运行脚本验证

并发运行测试脚本后,在请求树中查看请求的X-LocalAddress值,发现IP 已经发生了变化!

请求1如下图所示:

微服务测试系列:微服务性能测试的关键——IP欺骗技术

 请求2如下图所示:

到这里我们已经完成了IP欺骗工作!




鲁德课程的几大亮点:

1、课程全部自主研发,学习以注重思路为主,而不是按部就班,报名赠送全套4本自编教材

2、实用性和系统性为主,学习内容覆盖了测试开发岗位95%的技能要求
3、学习效果有保障,学完的平均薪资涨幅在60%-200%
4、学习氛围好,同学和老师互动频繁


劲爆福利:为了更多的帮助徘徊在技能瓶颈边缘的IT人员摆脱技能的尴尬,薪资低迷的困境,又因为经济压力问题,无法通过学习课程跟着大牛学习少走弯路,鲁德10周年,拿出50个价值33800元全栈测试开发课程免费学名额,帮助更多的人有效提升技能,在测试开发路上越走越好!


抢名额通道:图片右下角报名二维码



以上是关于微服务测试系列:微服务性能测试的关键——IP欺骗技术的主要内容,如果未能解决你的问题,请参考以下文章

微服务性能测试的关键——通过ELK查询日志

DevOps架构下如何进行微服务性能测试

使用jMeter构造大量并发HTTP请求进行微服务性能测试

springcloud+zuul+swagger2之微服务通过网关进行分发

微服务的集成测试 | 微服务系列第八篇

微服务架构系列一:关键技术与原理研究