20210719-python-locust压测全流程之一测试计划

此为本人实践接口性能压测的各项具体操作流程的总结,认知还比较浅,欢迎拍砖。
brief:

  1. 确定活动预期
  2. 输出活动预期涉及的页面和接口并做分析
  3. 根据分析输出压测计划
  4. 编写locust脚本
  5. 准备压测环境
  6. locust运行
  7. 压测结果分析
  8. 服务器压测情况分析

1、确定活动预期
与产品和运营讨论后确定以下点:

  • 活动期间的用户画像和漏斗模型
  • 预期入口流量高峰
  • 流量预期持续时间

2、输出活动预期涉及的页面和接口并做分析
在这里插入图片描述
(ps:省略了部分中间业务环节的拆解分析)
其他分析:

  • 其他二级页面访问量比较低且响应时间较快。
  • 如新建地址等接口,响应时间为秒级且漏斗最后进入下单并需创建地址的流量较小,评估无需压测。
  • 目标最高并发数=入口流量*1.5 = 1500 (为入口的并发流量)
  • 测试执行并发数 = 目标最高并发数
  • 各页面执行比重 = 漏斗转换比例(执行比重是locust的配置项,比如下单流,100个在线用户,80个在访问首页,10个在访问商详,则执行比重为8:1)
  • 单个接口的执行比重:原则上每个页面的接口的执行比重=页面执行比重的,总比重=涉及的页面比重之和。但部分接口是有条件触发的,则其接口各涉及页面比重进入页面时该接口的触发比 之和( 如登录接口,首页的触发比例=0.8,估价页触发比例0.8,则该接口执行比重 = 0.820+0.810=24)
  • /login需依赖第三方鉴权,无法模拟,临时绕过该鉴权调用或增加白名单通道。

3、根据分析输出压测计划
在这里插入图片描述
说明:
1>、执行比重:执行比重是locust的配置,用装饰器@task来配置。比如下单流,100个在线用户,80个在访问首页,10个在访问商详,则执行比重为8:1
2>、单个task脚本的请求接口:这里的压测计划以页面为单位任务,方便设置统一的执行比重并且结构更清晰参数更通用。
3>、每秒启动用户:一般活动期间的高峰不是一下子到达最高的,都是经过一段时间增长上去的。可参照历史高峰的增长趋势来设置多久到达最高峰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用PythonLocust来进行对ES7的压测。首先,确保你已经安装了PythonLocust。 接下来,你需要安装elasticsearch-py库,它是Python与Elasticsearch进行交互的库。可以使用以下命令安装: ``` pip install elasticsearch ``` 然后,创建一个Python脚本,导入必要的模块和库: ```python from locust import HttpUser, task, between from elasticsearch import Elasticsearch class ESUser(HttpUser): wait_time = between(1, 5) def on_start(self): # 创建一个Elasticsearch客户端连接 self.client = Elasticsearch(['localhost:9200']) @task def search(self): # 定义一个搜索任务 query = { "query": { "match_all": {} } } # 发送搜索请求 response = self.client.search(index='your_index', body=query) # 打印搜索结果 print(response) ``` 在上面的代码中,我们创建了一个名为ESUser的Locust用户类。在`on_start`方法中,我们创建了一个Elasticsearch客户端连接。 然后,在`@task`装饰的`search`方法中,我们定义了一个搜索任务。你可以根据自己的需求修改查询条件。在该方法中,我们发送了一个搜索请求,并打印了搜索结果。 最后,你可以在命令行中使用Locust命令来启动压测: ``` locust -f your_script.py --host=http://localhost:9200 ``` 替换`your_script.py`为你的脚本文件名,`http://localhost:9200`为你的ES7的地址。 然后,你可以在浏览器中访问Locust的Web界面(默认为http://localhost:8089)来配置并启动压测。 注意:在进行压测之前,请确保你已经在ES7中创建了索引,并且数据已经准备好。另外,压测会对目标系统造成一定的负载,请谨慎使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值