(九)Locust 参数化

使用 LoadRunner 和 JMeter 的同学都知道,性能测试工具设置参数化颇为麻烦,但对于 Python 来说,生成点数据再简单不过了。

参数化系统登录



这里以某系统登录为例,简单介绍登录用户名密码的参数化实现

from locust import HttpLocust, TaskSet, task
from random import randint

# Web性能测试
class UserBehavior(TaskSet):

    def on_start(self):
        self.login()

    # 随机返回登录用户
    def login_user():
        users = {"user1":123456,"user2":123123,"user3":111222}
        data = randint(1, 3)
        username = "user"+str(data)
        password = users[username]
        return username, password

    @task
    def login(self):
        username, password = login_user()
        self.client.post("/login_action", {"username":username, "password":password})

class User(HttpLocust):
    task_set = UserTask
    min_wait = 1000
    max_wait = 3000
    host = "http://www.xxx.com"

创建 login_user() 方法,定义登录字典 users , 通过randint 随机获取字典中的用户数据。

在 login() 登录任务中,调用 login_user() 方法实现 随机用户的登录。

关于参数化方式很多,这里起一个抛砖引玉作用。



关于 Locust 工具就介绍到这里,能否把 Locust 在工作中用好,取决于你对性能测试业务的理解,其次是灵活的运行 python 语言。

原文地址:https://www.cnblogs.com/jason89/p/9034097.html

时间: 2024-11-10 19:02:05

(九)Locust 参数化的相关文章

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 = "

python locust 性能测试:locust 参数化(list) ---循环取数据,数据可重复使用

from locust import TaskSet, task, HttpLocust class UserBehavior(TaskSet): def on_start(self): # 当模拟用户开始执行TaskSet类的时候,on_start方法会被调用 self.index = 0 @task def test_visit(self): url = self.locust.share_data[ self.index] # 取 self.locust.share_data<等于 Web

locust参数化

前面用篇专门讲了requests实现接口的参数关联案例,这里直接转化成locust脚本就行了 # coding:utf-8 from locust import HttpLocust, TaskSet, task from lxml import etree class LoginDemo(TaskSet): '''用户行为描述''' def get_it_execution(self): result = {} h1 = { "User-Agent": "Mozilla/5

Jmeter(九)参数化

参数化是自动化测试脚本的一种常用技巧.简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则: 这样,脚本在运行时就可以根据需要选取不同的参数值作为输入.这种方式通常被称为数据驱动测试(Data Driven Test),参数的取值范围被称为数据池(Data Pool). jmeter的测试计划中,支持如下4种参数化方式: 函数助手:_CSVRead CSV Data Set Config:CSV数据控件 User Defined Variables

python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据

from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test_register(self): try: # get_nowait() 取不到数据直接崩溃:get() 取不到数据会一直等待 data = self.locust.user_data_queue.get_nowait() # 取值顺序 'username': 'test0000'.'usernam

接口测试之Jmeter中http请求参数化(九)

1.打开Jmeter,新建一个测试计划 2.选择测试计划,右击-Threads(Users)-线程组 3.接下来新建一个http请求,选择线程组,右击-Samper-HTTP请求. 4.输入服务器名称或IP:选择post方式:输入请求路径:输入请求参数. 5.再添加一个察看结果树查看请求结果,选择线程组,右击-监听器-察看结果树. 6.点击运行,再点击察看结果树查看结果. 原文地址:https://www.cnblogs.com/fxcity/p/10577525.html

[转]LoadRunner参数化详解

http://www.cnblogs.com/fnng/archive/2012/06/22/2558900.html 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己更好的完成性能测试工作.这算是一个认知的过程吧! 在次安装打开loadrunner时,发现虽然自己的思想还在,但已经非常生疏了,好多设置都找不到了具体的位置.下面说参数化参数化是性

[翻译]NUnit---SetUp and SetUpFixture and Suite Attributes(十九)

SetUpAttribute (NUnit 2.0 / 2.5) 本特性用于TestFixture提供一个公共的功能集合,在呼叫每个测试方法之前执行.同时也用在SetUpFixture中,SetUpFixture在相同命名空间或者程序集也实现相同的作用. 在NUnit2.5之前,类必须只能有一个SetUp方法且必须是一个实例方法. 从NUnit2.5开始,SetUp方法可以使一个静态或者实例方法,而且在一个Fixture可以多次使用.通常多个Setup方法定义在不同层级的继承. 如果一个Setu

UML总结4---UML九种图关系说明

转自:http://blog.csdn.NET/chenyujing1234/article/details/8173519 UML中包括九种图:用例图.类图.对象图.状态图.时序图.协作图.活动图.组件图.配置图. 1)用例图(Use Case Diagram) 它是UML中最简单也是最复杂的一种图.说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂.说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单. 用例图表示了角色和用例以及它们