前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jmeter压测学习8-压测带token的接口

jmeter压测学习8-压测带token的接口

作者头像
上海-悠悠
发布2019-12-10 16:37:30
2.2K1
发布2019-12-10 16:37:30
举报

前言

工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口。 比如我现在要压测一个修改用户的个人信息接口,每个用户只能修改自己的个人信息。

场景案例

我现在有一个登陆接口A,登陆成功后返回一个token值。A接口登录接口文档基本信息

  • 访问地址: http://127.0.0.1:9000/api/v1/login/
  • 请求类型: POST
  • 请求头部: application/json
  • 请求参数: {“username”:”test”, “password”:”123456”} 接口返回 { “code”: 0, “msg”: “login success!”, “token”: “234af73571da46ade79ea6a74961b1d23d609b79”, “username”: “test” }

B接口需先登陆,修改用户的个人信息,并且用户只能修改自己的个人信息

  • 访问地址: http://127.0.0.1:8000/api/v1/userinfo
  • 请求类型: POST
  • 请求头部: Content-Type: application/json Authorization: Token 234af73571da46ade79ea6a74961b1d23d609b79
  • 请求参数: {“name”:”test”,”sex”:”M”,”age”:23,”mail”:”123@qq.com”} 接口返回 { “message”: “update some data!”, “code”: 0, “data”: { "name": "test", "sex": "M", "age": 23, "mail": "123@qq.com" } }

如果先登陆再关联到修改个人信息,这样实际上是发了2个请求,真实场景是用户早就登陆了,所以并不需要去压测登陆的场景。 我们只需要拿到token直接去压测B接口就行了。

测试token准备

B接口有两个参数是一一对应的,一个是token,一个是对应的name,比如压测的时候准备100个用户,我这里以10个用户为例 先注册批量的用户用于压测,我这里注册的用户是test1,test2……test10,一起10个用户

代码语言:javascript
复制
'''
批量生成token和需要用的测试参数,如username
大前提,你需要先注册这些用户test1,test2......test10
'''
import requests
# 上海-悠悠,QQ交流群:750815713

url = "http://127.0.0.1:9000/api/v1/login"

for i in range(1, 11):
    # 拼接用户名  用户名如 test1,test2.....test10
    username = "test"+str(i)
    body = {"username": username,
            "password": "123456"}
    r = requests.post(url, json=body)
    print(r.json())
    # 获取token
    token = r.json()["token"]
    # a追加模式写入txt
    with open("token_user.txt", "a") as fp:
        fp.write(token+","+username+"\n")

运行后生成的token_user.txt文件内容如下

代码语言:javascript
复制
f26be862c407a6fabf8fe3290ac21392b6eaf44f,test1
bed455954cb70f2060e17cf85339758cdcf94629,test2
033a47cb03e6d99384121d8a015fbe2542a198b5,test3
a09b5af04a06b274fece0a6766ed056be773294d,test4
49f3fee051c0615128577cfcfe324f226366b824,test5
c2ebaabe55bb651682b9c1c3b3d3779543f7088b,test6
f74dcea201337665f7f6a25905b9845826eb34c8,test7
f3d7bc13d0608196d557f0197a7f2c2c407a7d0d,test8
9c6d7b893ea2e8b226daa0c315299d5968e8a10c,test9
4cfd0827e803a7415e987996c2148312843ed037,test10

jmeter CSV数据文件设置

导入csv 测试数据文件,设置token和user两个变量

HTTP 信息头管理器引用token

请求参数引用user

运行结果

接下来就可以设置线程组愉快的压测了

比如我设置2个线程,4次循环,这样会请求8次,每次都从测试文件里面循环取值

2

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 场景案例
  • 测试token准备
  • jmeter CSV数据文件设置
  • 运行结果
    • 2
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档