logo资料库

Locust入门以及实战讲解(目前locust的相关资料还是比较少的).pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
一、性能测试相关技能点
1、性能测试定义
2、需要的技能
3、分类
4、团队支持
5、流程
二、进入正题Locust
1、为什么要学Locust
2、locust的使用
1)locust启动
2)登录
3)脚本
4)流程
5)详细注解
6)脚本优化一
7)脚本优化二
3、场景设计
1.用户数:
2.场景:
4、性能测试报告
三、监控系统指标
1.响应时间(RT)
2.吞吐量(Throughout)
3.事务处理能力(TPS)
4.资源利用率
5.数据库等
四、利用python监控系统资源(psutil)
摘要 我猜在性能压测的工具选择上你一定和我一样还在 使用 LoadRunner 或者是 Jmeter 吧,那么今天就 来学点不一样的,该文档主要介绍了 Locust 从入 门(简单原理)到脚本编写以及压测场景设置,内 容包含……(算了,你还是自己翻开看吧) Apache POI Locust、python LOCUST 实战入 门篇 Author:zhangzhenbing
一、性能测试相关技能点 1、性能测试定义 在一定的负载情况下,系统的响应时间等待特性是否满足特定的性能需求,较广泛的的概念(关注CPU的使用率、内存的使用率、磁盘的队列等 2、需要的技能 测试基础、编程、系统架构(服务器配置等)、数据库(监控数据库、tomcat、jvm等)、操作系统原理、网络、工具应用、业务理解、性能诊断(数据库索引、jvm参数配置等)、经验等 基于协议、多线程、模拟真实场景 3、分类 负载测试:模拟不同的用户集,在不同的用户集下,关注性能指标 压力测试:更大的负载,高负载就是压力 容量测试:在一定的软硬件和网络条件下,在数据库中构造不同级别的数据,再一定用户情况下执行,获取指标 配置测试:不同的软硬件,运行的多种业务,看哪种配置指标是最优,最后得到最佳搭配 基准测试:运行单个业务得到一个参照值(单个线程) 稳定性测试 :长时间运行,保持合理的负载 并发测试:引入集合点
4、团队支持 市场:数据调研、历史数据 DBA:数据库瓶颈(top sql,索引,主外键合理,数据库本身参数配置合理) 运维 、开发、测试以及客户等 5、流程 分析——业务理解、需求分析、评估工作 设计——模型、方案、脚本 实现——脚本开发、环境、数据 执行——运行测试、分析调优、测试报告 二、进入正题Locust 1、为什么要学Locust 1)简单易学,可以快速基于python开发脚本 2)开源免费 3)分布式执行。配置master和slave(主从机器),在多台机器上对系统持续发起请求。(一个主机控制多台slave从机) 4)基于事件驱动,与其他工具使用进程和线程来模拟用户不同,Locust借助了gevent库对协程的支持,可以达到更高数量的并发(线程是微进程,协程是微进程) 5)不支持监控被测机,需要配合其他工具辅助
2、locust的使用 1)locust启动 cmd进入文件所在文件夹的位置,locust -f XXXX.py(locust的脚本名称) --host=https://xxxx.com(主机或者IP),运行后 [2019-08-13 15:03:58,570] DESKTOP-JIKKL41/INFO/locust.main: Starting web monitor at *:8089 [2019-08-13 15:03:58,579] DESKTOP-JIKKL41/INFO/locust.main: Starting Locust 0.9.0 2)登录 浏览器输入localhost:8089,进入locust运行的主界面(下图有相关名称注解) 3)脚本 脚本示例见下图,每一步骤都有相应的注解
4)流程 a.编写脚本 b.打开cmd,进入到源码文件的目录 c.执行:locust -f shizhan.py --host=https://xxxxxx.cn d.打开浏览器,访问:http://localhost,配置,运行 5)详细注解 ⚫ class HttpLocust(Locust) 在Locust类中,有一个client属性,它对应着虚拟用户作为客户端所具备的请求能力,也就是我们常说的请求方法,通常情况下,我们不会直接使用Locust类,因为httplocust继承了locust类,再去实现了里面的http请求方法,如果直接继承locust类需要自己去实现一些方法
⚫ class TaskSet 要模拟业务操作,需要通过脚本来模拟,TaskSet类好比蝗虫的大脑,控制着具体行为 ⚫ client 是requests的对象,是内部实例化回来的 @task(weight=1):加weight是权重的意思,各自方法执行比例 6)脚本优化一 思考时间、参数化、检查点
7)脚本优化二 关联、代码整合优化
3、场景设计 1.用户数: 1)最佳用户数:指系统能够承受的最佳负载 2)最大用户数:指系统能够承受的最大负载 3)在线用户数:所有正在访问的系统用户(不一定正在操作,而是说当前客户端与服务器端的Session会话仍然保持) 4)并发用户数:同时对服务器产生请求的用户总数 5)系统用户数:系统额定的用户数量(设计容量),理论值
分享到:
收藏