zoukankan      html  css  js  c++  java
  • Locust接口性能测试

    前言:

    locust完全基于python语言,采用pure python描述测试脚本,并且http请求完全基于requests库。除了http/https协议外,locust还可以测试其他协议的系统,只需采用python调用对应的库进行请求描述即可,an open source load testing tool

    locust与lr、jmeter的区别:

    locust的并发机制摒弃了进程和线程,采用协程(gevent)的机制,协程避免了系统级的资源调度,因此可以大幅提高单机的并发能力

    locust的安装:

    可以在cmd或pycharm里的Terminal里pip install locust,当我们在安装locust时,它会检测我们当前的python环境是否已经安装了这些库,如果没有安装,那么它会先把这些库一一装上,并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本,检查是否安装成功,打开cmd或pycharm里的Terminal里输入locust --help,回车,会把所有的命令都列出来,安装的过程中会看到gevent>=1.2.2,flask>=0.10.1,msgpack>=0.4.2,six>=1.10.0,requests>=2.9.1,pyzmq>=16.0.2

    gevent:在python中实现协程的一个第三方库,协程又称微线程,使用gevent可以获得极高的并发性能

    flask:python的一个web开发框架,他与django的地位相当

    msgpack:一种快速、紧凑的二进制序列化格式,适用于类似json的数据

    six:它提供了一些简单的工具用来封装python2和python3之间的差异性

    pyzmq:如果你打算把locust运行在多个进程/机器,建议你安装pyzmq

    requests:使用该库来做http接口测试

    下面对公司的一个接口压测的例子,文件名是locust_file,脚本代码如下:

    首先启动性能测试服务,在cmd或pycharm里的Terminal里>locust -f test0604.py --host=https://www.baidu.com

    -f:指定性能测试脚本文件

    --host:指定被测试应用的url地址,注意访问百度使用的https协议

    接下来,通过浏览器访问localhost:8089,就可以看到locust页面。如下图:

    Number of users to simulate:设置模拟用户数

    Hatch rate(users spawned/second):每秒产生(启动)的虚拟用户数

    输入模拟用户数和每秒产生的虚拟用户数,单击Start swarming按钮,开始运行性能测试,这个是通过浏览器测试的形式,可以通过测试场景设计的时间长度运行,压力测试时间足够后,需要手动点击stop按钮,结束压力测试

    1、Type:请求的类型,例如GET/POST
    2、Name:请求的路径,这里为百度首页,即https://www.baidu.com/
    3、Requests:当前请求的数量
    4、Fails:当前请求失败的数量
    5、Median:中间值,单位毫秒,一半的服务器响应时间低于该值,而另一半高于该值
    6、Average:平均值,单位毫秒,所有请求的平均响应时间
    7、Min:请求的最小服务器响应时间,单位毫秒
    8、Max:请求的最大服务器响应时间,单位毫秒
    9、Content Size:单个请求的大小,单位字节
    10、Current RPS或reqs/sec:每秒钟请求的个数,相当于tps

  • 相关阅读:
    Java
    HashMap数据结构与实现原理解析(干货)
    Java
    Java
    Java
    面向对象基础
    Java
    Java
    Java
    shell脚本
  • 原文地址:https://www.cnblogs.com/laosun0204/p/10978365.html
Copyright © 2011-2022 走看看