chzhiyi / -KnowledgeShare

6 stars 1 forks source link

20190621 - Locust的参数化和脚本编写的基本要素- bailian #89

Open 15175036183 opened 5 years ago

15175036183 commented 5 years ago
添加参数化介绍参考网址:

https://blog.csdn.net/jojoy_tester/article/details/77926470

https://debugtalk.com/post/head-first-locust-advanced-script/

一、参数化形式一:从列表中循环取数据,数据可以重复使用
param_data = [210287,210288,210289,210290,210291]
def on_start(self):
    self.index = 0
data = self.locust.param_data[self.index]
self.index = (self.index + 1) % len(self.locust.param_data)
#len()函数是获取字符串、列表、字典、元组等的长度
#%在这里是运算符,求余数
二、参数化形式一:保证并发测试唯一,不循环取数据
# 读取参数文件里的数据,并添加到队列中
param_queue = queue.Queue()   #定义一个队列
# for i in range(210030, 215000):
with open('tmallorderid.csv', 'r') as f:
    for i in f:
        param_queue.put(i)

 try:  #获取队列中的数据
    data = self.locust.param_queue.get()
 except queue.Empty:    # 队列取空后,直接退出
     print("no data exist")
     exit(0)
三、参数化形式三:保证并发虚拟用户使用的数据不重复,并且数据可循环重复使用
# 每次读取完队列中的数据后,再放到队列中,在参数化二的基础上添加
self.locust.param_queue.put(data)
如何快速地编写Locust脚本

三要素:1.HttpLocust类(相当于jmeter中的测试计划)

​ 2.TaskSet类 (相当于jmeter中的线程组)

​ 3.参数化(相当于jmeter中的csv参数化文件)

Python Locust--Setups, Teardowns, on_start, and on_stop的介绍网址:

https://blog.csdn.net/qq_36255988/article/details/82622044