Locust压测--带Token

前言:
Locust是一款类似于Jmeter开源负载测试工具,所不同的是用python语言实现,并支持python脚本。Locust提供web ui界面,能够方便用户实时监控脚本运行状态。
Locust作为一个压测工具库,Locust其实解决这个问题:在实际测试过程中,待压的服务经常是一套完整流程,比如查询某登录用户的积分,就得必须得用户必须登录,且成功获取Token,方可进行下一步操作,然后再进行api调用。
测试内容
Locust压测程序是配置.py程序文件,命名为123.py,由两部分组成:
a、TaskSet类:里面放置需要测试的各种任务,这些任务用@task装饰器来标记
b、Locust类:它的一个实例就代表一个用户,同时它提供了用户并发访问的能力,它的task_set成员需要引用TaskSet类,那是它需要执行的任务。
实例(查询某登录用户积分):
积分API地址:
积分API请求,需要某用户登录后提供才有的Token
备注:根据登录得知,我们需获取登录信息的id,即Token为id
登录需提供信息:
API地址:
data(手机号码、密码):
密码MD5加密:
登录成功后,会有json格式response信息,获取需要的信息即可
环境:
python 2.7
Locust:0.8.1
实战:
以查询某用户积分为例,其代码如下:

# coding:utf-8
from locust import TaskSet, HttpLocust, task
import hashlib
import json


class UserBehavior(TaskSet):
    def login(self):
        data = {
            "account": '*******',
            "password": hashlib.md5("aaaaaa").hexdigest()

        }
        response = self.client.post('/***/memberLogin!login',data=data)
        content = json.loads(response.content)
        result = response.json()["result"]
        if result == 0:
            userId = content['content']['id']
            print u"登录用户的id:%s"%userId
            return userId
        else:
            print u"登录失败"

    def my_integral(self):
        self.login()
        response = self.client.get("/***/member!getMemberIntegralDetail")
        content = json.loads(response.content)
        # print content
        integral = content['content']['memberIntegral']
        print u"登录用户所得积分:%s"%integral

    @task(10)
    def login_logout(self):
        self.login()
        self.my_integral()
        self.logout()


class WebsiteUser(HttpLocust):
    host = 'http://192.168.10.21:8080/bredbaby'
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000
执行压力测试

打开cmd窗口进入脚本文件的目录之中,执行以下命令开启压力测试

locust -f 123.py文件所在位置

执行完上面命令后用浏览打开http://localhost:8089,出现以下界面:

尝试模拟100个虚拟用户,每秒发送30次请求,然后点击Start swarming开始进行压力测试

运行后可在cmd窗口看见其登录用户的integral,即说明token值传参成功

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值