locust参数化(数据库取值)

基于上一篇参数化的梳理,本篇用另一种方法从数据库中取出这100个用户来登录

思路:在 TaskSet 中的 on_start 方法表示执行任务前的操作,可以将数据库取数据的这个操作放在里面执行

from locust import task,TaskSet,HttpLocust
import pymysql
import os class MyTaskSet(TaskSet): def run_sql(self):
self.connect = pymysql.connect(
host = "192.168.x.xx",
database = "xxx",
user = "xxx",
password = "xx"
)
cursor = self.connect.cursor()
sql = "SELECT userAccount FROM t_sys_user WHERE userAccount LIKE 'w0%';" # 查询出用户名语句
cursor.execute(sql) # 执行查询语句
res = cursor.fetchall() # 保存查询结果
self.user_list = [] # 查询出来的结果为元组中嵌套长度为1的元组,不方便取值,这里用列表保存下来
for i in res:
self.user_list.append(i[0])
print(self.user_list)
cursor.close()
self.connect.commit()
self.connect.close()
return self.user_list # 返回列表 def on_start(self):
self.run_sql() # 执行task前运行一次run_sql函数 def on_stop(self):
print("----- Test over -----") @task
def login(self,pwd="b123456"):
self.headers = {
"Origin": "http://192.168.1.9:8080",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
}
path = "/SSOAuth?action=login&code=undefined&gotoURL=http%3A%2F%2F192.168.1.9%3A8080%2Fportal%2Fgeoindex.do" for user_account in self.user_list:
da = {"userAccount": user_account, "pwd": pwd}
data = {
"data": '%s' % da
}
self.client.post(path, headers=self.headers, data=data, verify=False) class MyLocust(HttpLocust):
"""w01~w0100为有效用户名,密码为默认的b123456"""
task_set = MyTaskSet # 指向任务集合
host = "http://192.168.1.9:8080" # web项目的话这里要设置host属性,否则是报错的 if __name__ == '__main__':
# os模块执行系统命令,相当于在cmd切换到当前脚本目录,执行locust -f locust_login.py
os.system("locust -f locust_login_db.py")

原文地址https://blog.csdn.net/qq_39620483/article/details/89639653

很好的博客https://blog.csdn.net/qq_39620483

locust参数化(数据库取值)的更多相关文章

  1. LoadRunner脚本实例来验证参数化的取值

    LoadRunner脚本实例来验证参数化的取值 SINM {3]!G0问题提出:  主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.51Testing软件测试网(['H5f,d ...

  2. LR参数化后取值规则小记

    对参数化的取值,只有一个用户的情况能分清,但是多用户多迭代就搞不懂,特意使用Parameter List中自带的参数化模拟器Simulate Parameter进行简单的实验,3条数据 + 4个用户 ...

  3. jmeter参数化随机取值实现

    jmeter能用来做参数化的组件有几个,但是都没有随机取值的功能,遇到随机取值的需求怎么办呢? 突发奇想,可以用函数__CSVRead()来实现: __CSVRead() CSV file to ge ...

  4. django-models 数据库取值

    django.shortcuts import render,HttpResponse from app01.models import * # Create your views here. def ...

  5. 与Mysqli相关的四种数据库取值

    <!--取值方案一:通过数字数组 fetch_row()--><meta http-equiv="Content-Type" content="text ...

  6. Loadrunder之脚本篇——参数化同行取值

    select next row 记录选择方式 Same line as,这个选项只有当参数多余一个时才会出现,其作用是根据某一个参数的行号取同一行. 例中的做法如下: 将多个参数存放在一个参数文件中: ...

  7. java 从数据库取值反射给变量

    在 javaweb开发中,往往一些通用的属性都定义到常量类中,而常量类中的常量又怎么赋初始值呢,可以再配置文件,可以直接赋值,可以在webstart的时候从数据库查询出来数据赋值 从数据库查询数据出来 ...

  8. 记一次 PHP 省市县三级联动 数据库取值

    /** * Notes:省市县三级联动 * Created by depressiom * Date: 2022年4月14日 */ public function getCityData(){ //获 ...

  9. fckeditor 数据库 取值 显示

    用fckeditor把html代码存到数据库中,取出来显示的时候用什么控件呢?用Literal  或  Label  控件.

随机推荐

  1. linux上安装redis-单机版

    1. Redis的安装 1.1. Redis的安装 Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一 ...

  2. Pandas 数据筛选,去重结合group by

    Pandas 数据筛选,去重结合group by 需求 今小伙伴有一个Excel表, 是部门里的小伙9月份打卡记录, 关键字段如下: 姓名, 工号, 日期, 打卡方式, 时间, 详细位置, IP地址. ...

  3. MySQL Others--约束(Constraint)示例

    ENUM约束 --使用ENUM来限制用户输入 CREATE TABLE Student ( StudentID INT AUTO_INCREMENT PRIMARY KEY, ClassID INT, ...

  4. MySQL Percona Toolkit--pt-osc重点参数

    修改命令参数alter .不需要包含alter table关键字,可以包含多个修改操作,使用逗号分开,如"drop clolumn c1, add column c2 int" . ...

  5. Linux实验:hdfs shell基本命令操作(二)

    [实验目的]    1)熟练hdfs shell命令操作    2)理解hdfs shell和linux shell命令[实验原理]    安装好hadoop环境之后,可以执行hdfs shell命令 ...

  6. node基础学习——http基础知识-02-http响应数据流

    <一> 发送服务器端响应流 在createServer()方法的参数值回调函数或服务器对象的request事件函数中的第二个参数值为一个http.ServerResponse对象,可以利用 ...

  7. keepalived+nginx+lnmp 网站架构

    <网站架构演变技术研究> 项目实施手册 2019年8月2日 第一章:  实验环境确认 4 1.1-1.系统版本 4 1.1-2.内核参数 4 1.1-3.主机网络参数设置 4 1-1-4 ...

  8. c++控制输出的字体颜色

    SetConsoleTextAttribute(参数表).SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数.参数表中使用两个属性(属性之间用,隔开).Get ...

  9. 深入详解JVM内存模型

    JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为 ...

  10. python 添加Windows权限

    # -*- coding: utf-8 -*- """ Created on Mon Jan 8 09:09:51 2018 @author: coordinate &q ...