[PPJ_19] Locust接口性能测试-脚本参数化

一、测试场景

被测接口:

http://127.0.0.1:8000/users/1/
http://127.0.0.1:8000/users/2/
http://127.0.0.1:8000/users/3/
http://127.0.0.1:8000/users/4/
http://127.0.0.1:8000/groups/1/
http://127.0.0.1:8000/groups/2/

对以上6个接口进行并发压力测试,可将不同的id取值进行参数化设置,循环遍历读取所需的参数值

二、代码实现

locust_users_groups.py

from locust import HttpLocust,TaskSet,task

class UserBehavior(TaskSet):
    # 初始化
    def on_start(self):
        self.users_index = 0    # 设置user参数下标的初始值
        self.groups_index = 0   # 设置group参数下标的初始值
        
    @task
    def test_users(self):
        users_id = self.locust.uid[self.users_index]    # 读取uid参数
        url = '/users/'+str(users_id)+'/'
        self.client.get(url,auth=('admin','admin123'))
        # 取余运算,循环遍历参数(下标:0,1,2,3,0,1,2,3...)
        self.users_index = (self.users_index+1)%len(self.locust.uid)
        
    @task
    def test_groups(self):
        groups_id = self.locust.gid[self.groups_index]  # 读取gid参数
        url = '/groups/'+str(groups_id)+'/'
        self.client.get(url,auth=('admin','admin123'))
        self.groups_index = (self.groups_index+1)%len(self.locust.gid)
        
class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    # 参数配置
    uid = [1,2,3,4]
    gid = [1,2]
    min_wait = 3000
    max_wait = 6000
    host = 'http://127.0.0.1:8000'  # 设置Host

PS:以上host设置时,记得要有类似的http://开头,漏写可能会运行报错

三、执行测试

执行Locust命令:

locust -f F:\Py_Script\api_testing\Locust\locust_users_groups.py
[PPJ_19] Locust接口性能测试-脚本参数化_第1张图片
[PPJ_19] Locust接口性能测试-脚本参数化_第2张图片


四、测试结果-图表

[PPJ_19] Locust接口性能测试-脚本参数化_第3张图片
[PPJ_19] Locust接口性能测试-脚本参数化_第4张图片
[PPJ_19] Locust接口性能测试-脚本参数化_第5张图片

你可能感兴趣的:([PPJ_19] Locust接口性能测试-脚本参数化)