Locust性能测试5-参数化之批量注册

前言

实现场景:所有并发虚拟用户共享同一份测试数据,并且保证虚拟用户使用的数据不重复。
例如,模拟10用户并发注册账号,总共有100个手机号,要求注册账号不重复,注册完毕后结束测试

准备数据

虚拟用户 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)

将测试数据加到队列

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.py

打开web页面,输入10个用户, 可以看到控制台的打印

[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

(0)

相关推荐