Locust性能測試5-參數化批量註冊

前言

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

準備數據

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

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

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

將測試數據加到隊列post

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命令行啓動命令行

$ locust -f locustfile4.pycode

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

[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:接口

相關文章
相關標籤/搜索