1 脚本# encoding: utf-# @Time : 2021/6/21 1:28 下午

# @Author  : Sail
# @File : main.py
# @Software: PyCharm
import json from locust import between, HttpUser, TaskSet, task, constant
import random class SaasTask(TaskSet):
data=[]
def on_start(self):
with open("111.txt", "r") as file:
global data
data = file.readlines()

@task
def load_getdealerlist_multparam_ShopSort(self):
pagesizes=[x for x in range(10, 20)]
currentpages=[1,2]
url=f"/apidealer/APIDealerToProduct/ibp/getdealerlist_multparam_ShopSort.aspx?productid={random.choice(data)}&provincesn=0&citysn=0&type=1&pagesize={random.choice(pagesizes)}&{random.choice(currentpages)}=1"
print(url)
with self.client.get(url=url,catch_response=True, name="getdealerlist_multparam_ShopSort") as response:
dict = json.loads(s=response.text)
list =dict.get("data")
print(response.text)
if len(list)>0:
response.success()
class SaasUser(HttpUser):
host="https://xx.xxx.com"
wait_time=between(1,2.5)
tasks = [SaasTask]

2、 注意的点

1、为了避免查询全部命中缓存,chpagesize、currentpage、productid 做出了随机数,prouctid为数据导出的2万条数据,本次pagesize, currentpage分别为10-20, 1-2 的随机数,本次测试数据由有10*2*20000约等于40万条数据。
2、代码没啥说的,不会的去官网瞅瞅, 学习成本不高,
3、重点是思路,其实我感觉我想的应该是有点问题,本次的重点在于对比新老接口的性能查询,所以只有一个task方法,新接口压完了重新部署老接口。大佬们看到哪儿有问题的话批评指正一下。

3、命令

现在的命令和之前变化的还是挺多的

locust -f main.py --master --headless -u 5000 -r 5  --csv-full-history  --csv=2.cvs  --print-stats

-f 指定文件 ,--master 指定控制机,--headless指定非web方式。-u指定多少个用户, -r每次增加多少个, 后面的一些是用来生成cvs文件的, 但是生成的文件太乱了, 数据量太大,感觉不是很实用。

locust -f main --worker

指定压力机, 我控制机和压力机在用一个设备上, --master-host可以省略

压测完的感受, 可以把控制机设置成web模式, 曲线看起来非常直观,压力机为其他机器,非ui模式看起来效果不明显。



写的不好,有很多比我写的好的, 记录一下吧。
												

记录一次使用locust压测的过程的更多相关文章

  1. Locust压测结果准确性验证

    最近闲着没事做,就重新研究了一下基于python语言的Locust性能测试框架 发现在压测的过程中,虽然设置了100并发,但是通过实际监控,完全看不到100并发压测的效果 通过代码AOP日志监控接口的 ...

  2. locust压测rpc协议

    这里主要是google的grpc接口进行压测的一个栗子. Locust是以HTTP为主要目标构建的. 但是,通过编写钩子触发器request_success和 request_failure事件的自定 ...

  3. python设置socket的超时时间(可能使用locust压测千级并发的时候要用到,先记录在此)

    在使用urllib或者urllib2时,有可能会等半天资源都下载不下来,可以通过设置socket的超时时间,来控制下载内容时的等待时间. 如下python代码 import socket timeou ...

  4. locust压测websocket协议

    Locust是以HTTP为主要目标构建的. 但是,通过编写触发器request_success和 request_failure事件的自定义客户端,可以轻松扩展到任何基于请求/响应的系统的负载测试 . ...

  5. Oracle完整的压测记录

    问题描述:对oracle进行一次完整的数据压测,从制造数据到压测的过程,路上踩了一些坑,现在分享出来 1.下载swingbenh软件,一个比较好用的oracle压测软件 2.利用oewizard工具( ...

  6. (转)一次压测对nginx/tomcat配置的调整

    原文地址:还在寻找.... 一个web系统,前端使用nginx做为反向代理,处理https,并将请求转发给后端的tomcat服务. 压力测试工具选择了jmeter. 首先简单介绍一下jmeter. 它 ...

  7. 京东全链路压测军演系统(ForceBot)架构解密

    摘要:全链路压测是应对电商大促容量规划最有效的手段,如何有效进行容量规划是其中的架构关键问题.京东在全链路压测方面做过多年尝试,本文转载京东商城基础平台技术专家文章,介绍其最新的自动化压测 Force ...

  8. Jmeter系列(3) - 静默压测

    前言 Windows环境 简述 静默 : 脱离UI运⾏JMeter压测,用命令行方式运行性能测试脚本好处:命令运⾏更容易"搞事情"命令格式: jmeter –n –t $jmx_f ...

  9. 【后台测试】手把手教你jmeter压测

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处.  转载请注明出处:http://www.cnblogs.com/by-dream/p/5611555.html 我知道我迟早是要踏上了后台测试之路 ...

  10. 腾讯云开放云压测“黑科技“,产品上线从此不再“压力山大"

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 能否解决"高并发"问题一直是检验一个产品后台是否稳定,架构是否合理,性能是否强大的核心标准.对于产品而言,多高的并发 ...

随机推荐

  1. go web编程学习记录

    学习 https://segmentfault.com/a/1190000013297625的记录 简单demo package main import "github.com/gin-go ...

  2. 4K60帧!RayLink远程控制软件如何帮助设计师远程办公?

    司机在家能远程工作吗?大写的"能"!!!如果你听说过司机远程办公,那你一定对下面这张图不陌生~ (远程办公的叉车司机) 这张图展示的是负责在库房工作的叉车司机在非办公区域远程办公的 ...

  3. Cloud9 3.0 SDK安装

    Cloud9 IDE是一个基于Node.JS构建的JavaScript程序开发Web IDE.它拥有一个非常快的文本编辑器支持为JS, HTML, CSS和这几种的混合代码进行着色显示.Cloud9 ...

  4. map函数中调用多个async await请求出现的promise问题解决

    以上这个打印会返回[promise,promise,promise]那么是什么原因造成的呢?我们先来一个方法解决: 但是以上这种解决方式并没有真正解决问题,还是会返回一个[promise,promis ...

  5. Rsync等传统文件同步方式已过时 如何寻找替代产品?

    Rsync原本是在Linux系统下面的一个文件同步协议,随着技术的发展,它也有其它版本的,如Windows和AIX.HPUX下面都有相应的版本可以支持的.它有很多版本都是免费的,配置也不复杂,所以很多 ...

  6. 简易FTP

    老男孩----上海校区 简易FTP 客户端端 import socket import struct import json import os class MYTCPCLIENT: address_ ...

  7. 学习lua-02,引入其他lua文件,调用全局方法

    local testlua = require "testlua" --testlua.compertoNum(1, 2, 4, 5, 11, 23, 543, 123, 45, ...

  8. pandas、matplotlib常用命令(收集整理)

    1 import matplotlib.pyplot as plt 2 import pandas as pd 3 import matplotlib as mpl 含有中文无法正常显示,需增加如下代 ...

  9. Flink 中 DataStream 和 DataSet区别

    DataSet与DataStream的区别.使用 DataSet同DataStream从其接口封装.真实计算Operator有很大的差别,Dataset的实现在flink-javamodule中,而D ...

  10. MyBatis Plus 设置ID的自增 /非自增时遇到的问题

    非自增时 自己设置ID 其他可参考------>主键策略的几种类型 https://blog.csdn.net/hxyascx/article/details/105401767