软件测试技能,JMeter压力测试教程(二)

news/2024/10/30 9:27:20/

目录

前言

一、案例场景

二、登录请求

三、Json 提取器

四、关联请求

五、遇到的坑


前言

现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值
上一个接口返回的token作为下个接口的入参

一、案例场景

我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问

A接口登录接口文档基本信息
访问地址:http://127.0.0.1:8000/api/v1/login/
请求类型:POST
请求头部:application/json
请求参数:{“username”:”test”, “password”:”123456”}

A接口的请求和返回的报文信息如下
 

D:\>http http://127.0.0.1:8000/api/v1/login/ username=test password=123456 -v
POST /api/v1/login/ HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/1.0.3
{"password": "123456","username": "test"
}
HTTP/1.1 200 OK
Allow: POST, OPTIONS
Content-Length: 109
Content-Type: application/json
Date: Sat, 21 Sep 2019 15:37:06 GMT
Server: WSGIServer/0.2 CPython/3.6.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{"code": 0,"msg": "login success!","token": "234af73571da46ade79ea6a74961b1d23d609b79","username": "test"
}

B接口获取绑定卡号的接口文档基本信息

访问地址:http://127.0.0.1:8000/api/v1/user/info/
请求类型:GET
请求头部:Content-Type: application/json
请求头部token参数:Authorization: Token xxxxx login token xxxxx

二、登录请求

先在jmeter里面添加http请求,填登录接口的参数

HTTP信息头管理器添加post请求类型:Content-Type: application/json
运行之后查看结果数,可以看到正确的返回我们想要的token值

三、Json 提取器

添加后置处理器-Json提取器

从返回的结果中提取token值 返回的结果

{"code": 0,"msg": "login success!","token": "234af73571da46ade79ea6a74961b1d23d609b79","username": "test"
}

JSON提取器参数说明:
Names of created variables:参数名称
JSON Path expressions:提取表达式
Match No.(0 for Random):匹配规则,-1所有,0随机,1第一个
Compute concatenation va :如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了
Default Values:没提取到就给默认值

四、关联请求

下个请求头部需要用到上面的token值

添加头部管理器,引用token参数 ${token}
查看结果,请求头部关联参数成功
查看响应结果也能正确的返回

五、遇到的坑

参数关联的时候,遇到一个坑,请求的参数都对,但是报错:
Response code: Non HTTP response code: org.apache.http.NoHttpResponseException

后来查资料,需要把第一个请求的的客户端实现用JAVA方式实现,才能正常的关联成功


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

资料获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群领取。


http://www.ppmy.cn/news/483510.html

相关文章

postgresql 操作jsonb数据

1.操作键值对 PostgreSQL 对 jsonb 类型的筛选查询可以使用 -> 或者 ->> 操作符。 -> 操作符用于通过 JSON 对象中的键来获取对应的值。->> 操作符可以将获取到的值转化为字符串类型。 例如,下面是一个包含 jsonb 类型字段的表: …

解决谷歌翻译无法使用

谷歌翻译无法使用是谷歌官方关闭了中国地区翻译服务。 废话不多说直接上教程,本质就是通过修改hosts文件让translate.googleapis.com域名的IP解析到国内的谷歌服务器IP,网上大部分的教程也是如此。 但是有个问题就是这个IP不稳定可能用了几天就不用了&am…

学习adaboost(一,遍历分类器,c#实现)

我看了很多遍,终于搞懂了,现在编程试一试, 参考文献(十三)通俗易懂理解——Adaboost算法原理 - 知乎 (zhihu.com) 先写一一段代码,把这个数据集里头的所有分类器找出来:一共四种结果&#xff1a…

【MySQL】· 一文了解四大子查询

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL标量/单行子查询、列子/表子查询的讲解✨ 目录 前言一、子查询概念二、标量/单行子查询、列子/表子查询三、总结 一、子查询概念 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从My…

对不起,ChatGPT 不会干掉你,而是干掉整个行业

观点| Mr.K 主笔| Wendy.L 来源| 技术领导力(ID:jishulingdaoli) 近日,根据网站流量监测平台SimilarWeb的数据,自从OpenAI的对话人工智能工具ChatGPT推出以来,程序员们交流技术问题的问答网站平台Stack Overflow的流量骤降&…

飞机在加速起飞和在空中飞机时的动力是什么提供的?

https://zhidao.baidu.com/question/328511374.html https://blog.csdn.net/FnqTyr45/article/details/78957772?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs-4 (一)起飞滑跑的目的是为了增大飞机的速度,直到获得离地速度。…

飞机绕地球飞行,共需多少架飞机能飞行一圈的问题

题目: 一架飞机在满油的情况下可绕地球飞0.5圈,假设飞机与飞机之间可以互相加油,且地球只有一个基地。请问在确保所有飞机够油飞回起点的情况下,最少需要机架飞机才可以让其中一架飞机成功绕地球飞行一圈?(…

液体传感器应用案例 | 精确把控飞机燃油质量

《逍遥游》有云:适莽苍者,三餐而反,腹犹果然;适百里者,宿舂粮;适千里者,三月聚粮。 而当飞机要想逍遥于九天之上,自然也要准备好相应的燃料。准备多少?如何把控&#xff…