前言

实现场景:所有并发虚拟用户共享同一份测试数据,并且保证虚拟用户使用的数据不重复。
例如,模拟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
[2018-09-21 00:00:58,017] DESKTOP-HJ487C8/INFO/stdout:

Locust性能测试-参数化批量注册的更多相关文章

  1. locust参数关联及批量注册

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点,需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:http ...

  2. Locust性能测试

    https://www.cnblogs.com/yoyoketang/p/9638151.html https://www.cnblogs.com/yoyoketang/p/9642242.html ...

  3. Locust性能测试4-参数关联

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...

  4. Locust性能测试_参数关联

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...

  5. RegisterDllAndOcx.bat -批量注册当前文件夹中的dll和ocx

    批量注册当前文件夹中的dll和ocx 新建文件:RegisterDllAndOcx.bat   @echo off echo hello,girl~~ for %%i in (*.dll *.ocx) ...

  6. Python Locust性能测试框架实践

    [本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...

  7. Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具

    基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的 ...

  8. javascript使用for循环批量注册的事件不能正确获取索引值的解决方法

    今天遇到一个问题,那就是当使用for循环批量注册事件处理函数,然后最后通过事件处理函数获取当前元素的索引值的时候会失败,先看一段代码实例: <script type="text/jav ...

  9. python locust 性能测试:locust安装和一些参数介绍

    安装参考 https://www.cnblogs.com/fnng/p/6081798.html <虫师大大的,很详细> ps:python3.7暂不支持locust:python3安装建 ...

随机推荐

  1. cogs 944. [東方S3] 藤原妹红

    二次联通门 : cogs 944. [東方S3] 藤原妹红 /* cogs 944. [東方S3] 藤原妹红 最小生成树 + 树形dp 首先对原图跑最下生成树 后建出一棵树 在树上进行dp 先走到叶子 ...

  2. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  3. word2vector的tensorflow代码实现

    import collections import math import os import random import zipfile import numpy as np import urll ...

  4. 【Alpha】“北航社团帮”小程序v1.0发布声明

    我们的"北航社团帮"小程序发布啦!!! Alpha版本功能 功能列表和详情图 模块 功能 登录 授权登录,游客模式,无需填写信息 活动展示 首页轮播热度最高的四个活动,查看活动详情 ...

  5. asp.net core session使用

    一.配置回话状态 Microsoft.AspNetCore.App metapackage 中包含的 Microsoft.AspNetCore.Session 包提供中间件来管理会话状态. 若要启用会 ...

  6. centos7安装python3.7.4和pip3

    亲测有效,针对 阿里云 centos 7 轻量服务器 python ==> 3.7.4 pip ==>  3 一,打开python官网,找到下载Python的tgz文件,有两种方式下载 ( ...

  7. java初中级面试题(最新版)

    Java基础方面: 概念 1.什么是面向对象? 万物皆对象,把现实中有共同特性行为的对象抽象成类,类是程序中最基本的单位. 2.类和对象 面向对象的思想是如何在java展现的呢? 就是通过类和对象 * ...

  8. visual studio 2019 error MSB3073 exited with code 1

    在用vs2019编译C++工程时,出现错误. 原因是设置的命令没有运行成功,需要将这条命令关闭.不编译就行了. 解决方法,打开property manager,打开property pages,将其中 ...

  9. 使用filebeat发送nginx日志到kafka

    1.配置filebeat_nginx.yml filebeat.modules: - module: nginx access: enabled: true var.paths: ["/va ...

  10. 安装centos docker ce

    安装centos docker ce 移除旧的版本: $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker- ...