可能之前很多同学对JMeter比较熟悉,反而对Locust接触比较少。大家知道在使用JMeter进行web性能测试时,可以利用其录制的功能,从而减少其工作量。而转移到Locust这款工具时,发现要直接写python脚本去实现要模拟的性能场景。其实Locust也有类似录制的功能,现介绍如下:
比如我们要实现一个功能,打开一篇博客文章。https://blog.51cto.com/13734261/2540530, 那怎么用录制的思维方式去实现呢? 当然了这个例子很简单,可能有同学觉得没必要走录制的情况,直接去实现一个HTTP request就可以了。是的,但是如果需求是模拟打开这篇博客文章的所有的请求,包括相关的图片,JS, CSS请求。那么录制的思维就比较好了,即使只是一个http请求,一个个去实现起来也是比较费事的。
实现步骤主要分为几步:
1> 在浏览器中打开dev tool 去network tab页面去抓取页面请求,然后将显示结果保存为.har文件。抓取到的页面请求细节如下图所示,其中第一为主请求。
2> 将 .har 文件转换成locust file格式(.py):
首先大家可以参考python给出了这个转换器模块,在Python环境中可以安装使用,官网地址为: https://pypi.org/project/har-transformer/
2.1> 首先安装相应的python模块,安装命令为:
pip install har-transformer
2.2> 执行转换操作,具体如下,其中"blog.51cto.com.har"是之前保存的.har文件名称。
transformer blog.51cto.com.har > har_locust_file.py
2.3> 转换locust file脚本如下(部分截图),其实发现,其实转换器侦测到requests需要遵循一定的sequence顺序,具体如脚本。
3> 运行测试,此时可以按照locust file运行性能测试即可,运行命令可以为:
locust -f har_locust_file.py
运行结果如下:
大家可以按照文中步骤练习,如有问题,请留言。