Locust-參數化批量註冊(還沒試,目測試能夠的)

前言

實現場景:全部併發虛擬用戶共享同一份測試數據,而且保證虛擬用戶使用的數據不重複。
例如,模擬10用戶併發註冊帳號,總共有100個手機號,要求註冊帳號不重複,註冊完畢後結束測試html

準備數據

虛擬用戶 locust1 locust2 locust3 locust4 locust5 locust6 locust7 locust8 locust9 locust10
共享數據 tel1 tel2 tel3 tel4 tel5 tel6 tel7 ...... tel99 tel100

虛擬用戶數,能夠在啓動的時候設置,這裏先裝備好註冊須要用到的手機號,能夠用list生成python

# 生成測試手機號 demo = 13812120000 teldatas = [str(demo+i) for i in range(100)] print(teldatas)

將測試數據加到隊列web

import queue

# 生成測試手機號 demo = 13812120000 teldatas = [str(demo+i) for i in range(100)] # print(teldatas) # 添加到隊列 telqueue = queue.Queue() for i in teldatas: telqueue.put_nowait(i)

註冊demo參考

如下是一個簡單的demo模型,具體的註冊接口替換過去就能夠了併發

# 保存爲 locustfile4.py # coding=utf-8 from locust import HttpLocust, TaskSet, task import queue class test_taskset(TaskSet):  @task def register(self): try: tel = self.locust.telqueue.get() # 獲取隊列裏的數據 print(tel) except queue.Empty: # 隊列取空後,直接退出 print("no data exist") exit(0) print("當前註冊手機號:%s" % tel) # body = { # "username": tel, # "psd": "123456", # } # self.client.post("/register", data=body) # POST方法發送請求 class test_run(HttpLocust): host = 'http://192.168.1.xxx:80' task_set = test_taskset # 生成測試手機號 teldatas = [str(13812120000+i) for i in range(100)] # 添加到隊列 telqueue = queue.Queue() for i in teldatas: telqueue.put_nowait(i) if __name__ == "__main__": import os os.system("locust -f locustfile4.py")

cmd命令行啓動post

$ locust -f locustfile4.py測試

打開web頁面,輸入10個用戶, 能夠看到控制檯的打印spa

[2018-09-21 00:00:58,013] DESKTOP-HJ487C8/INFO/stdout: 當前註冊手機號:13812120096
[2018-09-21 00:00:58,013] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout: 13812120097
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout: 當前註冊手機號:13812120097
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout: 13812120098
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout: 當前註冊手機號:13812120098
[2018-09-21 00:00:58,015] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,017] DESKTOP-HJ487C8/INFO/stdout: 13812120099
[2018-09-21 00:00:58,017] DESKTOP-HJ487C8/INFO/stdout:
[2018-09-21 00:00:58,017] DESKTOP-HJ487C8/INFO/stdout: 當前註冊手機號:13812120099
[2018-09-21 00:00:58,017] DESKTOP-HJ487C8/INFO/stdout:命令行

 

來源: http://www.javashuo.com/article/p-thujqibl-hq.htmlcode

 

其餘插入隊列的方法見: http://www.javashuo.com/article/p-equuoxuv-ho.htmlhtm

相關文章
相關標籤/搜索