[PPJ_19] Locust接口性能测试-脚本参数化
2018-11-19 本文已影响121人
Fighting_001
一、测试场景
被测接口:
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