jmeter压测学习8-压测带token的接口
前言
工作中我们需要压测的接口大部分都是需要先登陆后,带着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个用户
'''
批量生成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文件内容如下
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次,每次都从测试文件里面循环取值

上海-悠悠,QQ交流群:750815713
jmeter压测学习8-压测带token的接口的更多相关文章
- Jmeter压力测试学习7--压测带token的接口
前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口.比如我现在要压测一个修改用户的个人的密码 场景案例 ...
- postman带Token测试接口
首先打开postman.是这样的界面 我们的需求是这样的.实现登录之后返回token.然后请求其他接口时在header头中带上token信息. OK.接下来我们这样操作: 现在登录没有操作token. ...
- Jmeter压测学习3---通过正则表达式提取token
上一个随笔记录的是用json提取器提取token,这个随笔记录用正则表达式提取token 一.添加正则表达式 登录右击添加->后置处理器->正则表达式提取器 正则提取器参数说明: 要检查的 ...
- jquery带token访问接口ajax
1.在公共js里全局设置 //设置全局ajax $.ajaxSetup({ xhrFields: { withCredentials: true } }); 2.登录成功时,设置cookie (注: ...
- JMeter在linux上分布式压测步骤(二)
哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...
- MMM 状压dp学习记
状压dp学习记 by scmmm 开始日期 2019/7/17 前言 状压dp感觉很好理解(本质接近于爆搜但是又有广搜的感觉),综合了dp的高效性(至少比dfs,bfs优),又能解决普通dp难搞定的问 ...
- 接口测试——带token请求post接口(postman学习)
今天遇到一个接口,是添加备注的,post类型,访问参数中需要带上token才行,我在header 中直接加token参数,接口总返回 403,请登陆 1.考虑yapi接口平台集成的是postman的接 ...
- Django学习之django自带的contentType表 GenericRelation GenericForeignKey
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
- day 94 Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
随机推荐
- Codeforces Round #604 (Div. 2) 练习A,B题解
A题 链接 思路分析: 因为只需要做到相邻的不相同,利用三个不同的字母是肯定可以实现的, 所以直接先将所有的问号进行替换,比如比前一个大1,如果与后面的冲突,则再加一 代码(写的很烂): #inclu ...
- 关于npm(一)
npm install X: 把X包安装到node_modules目录中修改package.json运行npm install命令时,不会自动安装X npm install X –save: 把X包安 ...
- SVN 中项目名字全是红色 和 文件夹图标上没标记绿钩解决办法
没有绿色标记卸载Tortoise 小乌龟重装 ! 红色名字是 原来idea当前的project用了版本控制器, 那么建到这个project下面的所有项目就都是加入到版本控制里面的, ...
- 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!
别告诉我你不知道 别告诉我你不知道可以使用键盘的 Shift 和 Ctrl 来多选表格行,因为这个在 Windows 文件资源管理器中的常用操作,此时的画风是这样的: 这个动图中进行了如下操作: 1. ...
- 第八周论文学习03 An Efficient Tree-based Power Saving Scheme for Wireless Sensor Networks with Mobile Sink
来源:IEEE Sensors Journal Year: 2016, Volume: 16, Issue: 20 Pages: 7545 - 7557, DOI: 10.1109/JSEN.2016 ...
- N!(hdu1042)
N! Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, process ...
- C++:Name Lookup & Best Match
名字查找 每当一个变量或者一个对象出现,编译器都会进行名字查找(name lookup),以确认这个变量或对象的具体属性.一般情况下,程序会从变量出现的地方开始向上查找,由内向外查找各级作用域直到全局 ...
- CodeForce 577B Modulo Sum
You are given a sequence of numbers a1, a2, ..., an, and a number m. Check if it is possible to choo ...
- Expression Tree上手指南 (一)【转】
大家可能都知道Expression Tree是.NET 3.5引入的新增功能.不少朋友们已经听说过这一特性,但还没来得及了解.看看博客园里的老赵等诸多牛人,将Expression Tree玩得眼花缭乱 ...
- vs2017离线包下载安装并且不占用C盘空间使用教程
安装vs2017,前提是你的环境是.NET4.6,VS2017在下载好安装程序安装的时候,会根据你选择的功能模块来下载所需要的安装程序,微软.安卓和苹果等平台的SDK.模拟器和第三方扩展功能等会在用户 ...