Restful接口_locust性能测试_2

测试案例
针对如下两个接口进行性能测试:
http://127.0.0.1:8000/users/
http://127.0.0.1:8000/groups/

负载场景
(1)每秒生成 2 个用户,总共生成 60 个用户。
(2)负载测试 5 分钟然后查看接口的平均响应时间。

脚本实现:
restful_api_locust.py
#coding=utf-8
from locust import HttpLocust,TaskSet,task

#定义用户行为类
class Usebehavior(TaskSet):
    @task(2)
    def test_user(self):
        self.client.get('/users/',auth=('hudechao','hdc@328216'))

    @task(1)
    def test_groups(self):
        self.client.get('/groups/',auth=('hudechao','hdc@328216'))


#定义设置用户性能类
class Websiteuser(HttpLocust):
    task_set = Usebehavior
    min_wait = 3000
    max_wait = 6000

UserBehavior类继承TaskSet类,用于描述用户行为。
(1)@task 装饰该方法为一个事务,后面的数字表示请求比例,上面的比例为 2:1 默认都是 1:1
   即:想要多少个比例的虚拟用户去访问某一个接口
(2)test_users() 方法表示一个用户行为,这里是请求 user 接口。
(3)test_groups() 方法表示请求 group 接口。
(4)client.get() 用于指定请求的路径。

WebsiteUser 类用于设置性能测试。
(1)task_set :指向一个定义的用户行为类。
(2)min_wait :执行事务之间用户等待时间的下界(单位:毫秒)。
(3)max_wait :执行事务之间用户等待时间的上界(单位:毫秒)。

执行测试:
使用如下命令开始启动测试:
C:\Users\admin>locust -f E:\django_restful\api\locust\restful_api_locust.py --host=http://127.0.0.1:8000
[2019-07-29 21:08:28,915] DESKTOP-3P6LO20/INFO/locust.main: Starting web monitor at *:8089
[2019-07-29 21:08:28,916] DESKTOP-3P6LO20/INFO/locust.main: Starting Locust 0.11.0
在本地浏览器打开:http://localhost:8089
• Number of users to simulate:设置模拟用户数。
• Hatch rate(users spawned/second):每秒产生(启动)的虚拟用户数。
• 单击"start swarming"按钮,开始运行性能测试

运行之后的界面各性能测试参数如下:
Type:请求的类型,如GET/POST
Name:请求的路径。
request:当前请求的数量。
fails:当前请求失败的数量。
Median:中间值,单位毫秒,一半的服务器响应时间低于该值,而另一半高于该值。
Average:平均值,单位毫秒,所有请求的平均响应时间。
Min:请求的最小服务器响应时间,单位毫秒。
Max:请求的最大服务器响应时间,单位毫秒。
Content Size:单个请求的大小,单位字节。
req/sec:每秒钟请求的个数

点击Charts菜单可以查看性能图表:
图表含义如下:
Total Request per Second :每秒的请求数
Average Response Time: 平均响应时间
Number of Users: 用户数

你可能感兴趣的:(Restful接口_locust性能测试_2)