ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

性能测试5.24

2022-05-25 09:04:08  阅读:171  来源: 互联网

标签:协程 请求 Python 性能 locust 5.24 测试 服务端


Locust

Locust依赖Python环境所以在使用locust做性能测试前需要搭建Python环境

Python环境的搭建

1、C盘下创建Python3文件夹

2、打开安装包,安装目录选择创建的Python3

3、安装的时候,勾选add to path   选择customize installation

验证环境是否搭建成功:

控制台 输入python  出现版本就是搭建成功

在线下载locust

pip3 install locust

locust简介:

locust是非常优秀的性能测试工具,它是依赖于Python的环境,所以使用它的前提是首先需要安装它,然后下载(pip3 install locust)

locust官网:https://locust.io/

locust是基于协程的设计,什么是协程,可以把它理解为微小的线程,基于用户的行为可以控制它。Python一直很优秀,但是Python在性能方面的表现很差劲,所以Python设计了协程来改进这部分的设计缺陷,LOCUST对服务端的负载能力很强,所以使用它可以来做服务端的稳定性测试。

在Python的技术栈的体系中,性能测试的⼯具是Locust的测试框架,Locust是⼀种易于编写,可以编写测试脚本 和可以扩展的性能测试⼯具,它是基于协程来进⾏设计的,当然也可以说是基于event的事件来进⾏设计的。协程 我们可以简单的理解为是基于⽤户态的线程,更加专业的话说是微线程,基于⽤户可以控制的⼀种微⼩的线程,也 可以叫协程。

如何使用locust进行性能测试?

1、启动服务(这里是把测试的jar包部署到本地)

java -jar app-0.0.1-SNAPSHOT.jar

 2、启动locust

(web模式这个需要locustfile.py文件)

import time
from locust import HttpUser,task,between

class QuickStartUser(HttpUser):
   wait_time = between(1,2.5)

   @task
   def index(self):
      r=self.client.get('/testDev')
      assert r.status_code==200

(2、负载模式这个需要locustfile2.py文件)

import time
from locust import HttpUser,task,between

class QuickStartUser(HttpUser):
   host = 'http://localhost:8081'
   min_wait = 3000
   max_wait = 6000
   @task
   def index(self):
      r=self.client.get('/testDev')
      assert r.status_code==200

locust -f locustfile.py

 locust -f locustfile2.py

3、在浏览器访问:

http://localhost:8089/

界面介绍:

下⾯具体针对界⾯的⽂字设置进⾏解释,具体如下:

• Number of total users to simulate:设置模拟的⽤户总数

• Spawn rate (users spawned/second):每秒启动的⽤户虚拟数

• Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息

Type:请求类型(也就是请求具体是那个=⽅法)

Name:请求的路径地址信息

Requests:当前已完成的请求数量

Fails:当前失败的数量

Mediam(ms): 响应时间的中位数

90%ile (ms):90%的请求响应时间

Average (ms):平均响应时间

Min (ms):最⼩响应时间

Max (ms):最⼤响应时间

Average size (bytes):平均请求的数据量

Current RPS:每秒中处理请求的数量,也就是RPS 

New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑;

Statistics:聚合报告

Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;

Failures:失败请求的展示界⾯;

Exceptions:异常请求的展示界⾯;

Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics,responsetime、 exceptions;

jmeter与locust的区别:

1、JMeter是100%Java语言开发的,它是基于线程的模式向服务端发送请求

2、Locust是Python语言开发的,它是基于协程的模式

你之前有做过服务端稳定性测试吗?你是怎么理解它的?

1、服务端稳定性测试指的是持续高并发的向服务端发送请求,服务端都能够处理客户端发送的处理,通过这样的一个模式来验证服务端它在持续高负载下它的业务处理能力,和系统的整体设计能力。如一码通,持续72小时连续不停的扫描二维码,都应该能够很快速的出健康码。

2、有做过,如果是使用JMeter,就是无限循环,如果是locust,就一直持续的请求,具体多久,我们之前是24小时连续不停的请求

Locust性能测试模式选择:

常规的压力测试 用web模式

负载测试用负载模式

测试报告:

性能需求:

1、平台满足1000用户同时使用该平台

2、平台中最大响应时间不能超过5秒

前期准备:

• 测试前期准备

• 测试工具技术引入

• 性能测试计划

• 测试设计与开发

• 测试执行与管理,数据收集

• 测试分析

前期准备:

1、800-1500

2、登录 增删改查

3、数据---增删改查用的数据

4、确定服务器配置

生产环境和测试环境的配置必须保持一致

 

报告数据收集:

性能数据 510

1、系统资源:

 

 

 

系统资源最大是:61 最小是0

由于它的内存没有变化 但是cpu占用居多 表示这个是CPU紧密型

2、JMeter资源

最大响应时间:21058

最小响应时间 1175

吞吐量:1.3/s

 

标签:协程,请求,Python,性能,locust,5.24,测试,服务端
来源: https://www.cnblogs.com/zhanghong23/p/16304989.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有