IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> locust测试工具 -> 正文阅读

[开发测试]locust测试工具

一、locust是什么?

一个支持分布式架构的测试工具,能够很轻松的编写测试脚本,完成网站的并发性能测试。

官方网站(Locust - A modern load testing framework),里面有详细的使用介绍。

二、部署

? ? ? ? (一)环境要求:Python 3.6以上,支持Win、Mac、Linux

? ? ? ? (二)安装步骤(Win环境):

? ? ? ? ? ? ? ? 1.官网下载Pyhton的最新版本,完成安装。

? ? ? ? ? ? ? ? 2.使用? pip3 install locust? 安装。如果在命令行提示无此命令,请检查Python的环境变量设置。将 Python/ 和 Python/Scripts/ 添加到 Path 变量下,或者直接到Python的Scrips/目录下开个命令行窗口运行。

C:\> pip3 install locustpip3 install locust

? ? ? ? ? ? ? ? 3.在命令行输入? locust -V检查版本,出来版本说明安装成功。

C:\>locust -V
locust 2.2.1

? ? ? ? ? ? ? ? 参数输入错误的情况下会提示找不到 locustfile ,也是已经安装好了。

C:\>locust
Could not find any locustfile! Ensure file ends in '.py' and see --help for available options.

三、测试

? ? ? ? (一)测试脚本编写

? ? ? ? ? ? ? ? locust的测试脚本,以官方的HelloWorld为例。可以参考Writing a locustfile — Locust 2.2.1 documentation

import time
from locust import HttpUser, task, between

from locust import events
from locust.runners import MasterRunner, WorkerRunner

class QuickstartUser(HttpUser):
    wait_time = between(1, 5)

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_items(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")
            time.sleep(1)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

????????????????QuickstartUser类定义了网站的访问行为。?

????????????????@task:定义网站的访问操作,后面的 () 内可以设置权重占比。?

? ? ? ? ? ? ? ? 例如网站有80%的比例是GET方式访问,20%的比例是POST,就可以分别写成@task(80)和@task(20)。

????????????????self.client.get(""):HTTP的请求方式,支持GET、POST、PUT等等。(“”)里写网页的路径,需要注意的是,如果这里加了“/”,在写HOST时结尾就不要加“/”,否则会导致目录错误,影响测试结果。? ? ? ??

????????????????分布式测试

from locust import events
from locust.runners import MasterRunner, WorkerRunner

????????????????在做分布式测试时需要增加上述两行内容。

? ? ? ? (二)运行测试脚本

? ? ? ? ? ? ? ? 1.单机运行

? ? ? ? ? ? ? ? locust -f 指定测试脚本。

? ? ? ? ? ? ? ??

C:\> locust -f .\helloworld.py
[2021-09-07 09:47:16,734] DESKTOP-9R9O2EC/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces)
[2021-09-07 09:47:16,851] DESKTOP-9R9O2EC/INFO/locust.main: Starting Locust 2.2.1

????????????????出现上述字段说明locust已经正常运行,在浏览器输入http://localhost:8089打开UI界面。

????????????????不知道是什么原因,只有localhost能打开,其他的无论是具体ip还是127.0.0.1都不行。

? ? ? ? ? ? ? ? 指定最大用户量1000,用户每秒增长100个,测试域名要带协议,注意结尾有没有反斜杠"/"。点击开始以后开始按照测试脚本进行压测。

测试结果也可以展示RPS,提供数据图,并能够到处测试报表。

? ? ? ? ? ? ? ? 2.分布式测试

? ? ? ? ? ? ? ? 分为master和worker角色,可以在多台worker上分布式测试,结果汇总到master上。注意测试脚本需要一致。

? ? ? ? ? ? ? ? master角色:

C:\> locust -f .\helloworld.py --master

? ? ? ? ? ? ? ? worker角色:

 C:\> locust -f .\helloworld.py --worker --master-host=x.x.x.x

? ? ? ? ? ? ? ? x.x.x.x为master的ip地址,默认端口是5557,可以通过--master-port=xx指定其他端口。

?

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2021-09-09 12:04:57  更:2021-09-09 12:06:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:31:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码