第九节 JMeter基础-高级登录【接口关联-鉴权】

声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改。

背景:电商的功能:登录、加入购物车、提交订单。问题:谁把什么商品加入了购物车?这时需要把上一个接口的响应数据(登录成功后返回响应数据token值),作为下一个接口的请求数据(加入购物车时token值作为请求数据),这操作JMeter称之为【接口关联】。

思路

1、登录成功后,得到用户标识--token值

2、加入购物车--用token值来区分是谁操作;

3、运行后查看结果树。

1.认识JMeter

(1)后置处理器【JSON提取器】

JSON提取器是为了提取某个字段的值。这里是为了提取登录成功后,响应数据返回的token值。

(2)配置元件【HTTP信息头管理器】

主要修改请求头中content-type的类型,JMeter默认是表单类型。

2.【HTTP请求默认值】

养成习惯,把多个接口访问同一个服务器地址提取出来,设置http请求默认值。

3. HTTP请求【登录】

(1)设置【HTTP请求】

(2)设置【JSON断言】

4. 【JSON提取器】

在【登录】层级下添加【JSON提取器】。因为token具有时效性,每次登录后token都不一样,所以它并不是固定写死的。这里通过【JSON提取器】获取到token的值,传参给下一个【加入购物车】接口。

(1)新建【JSON提取器】

【右击】【添加】【后置处理器】【JSON提取器】

(2)设置【JSON提取器】

① Names of created variables:必传,接收提取值的变量名,多个变量用**;** 分隔。给个名"login_token",后面【加入购物车】时传参需要用到。

② JSON Path expression:必传,用来提取某个值,多个表达式用**;** 分隔。表达式:.data.token**或者**..token(这个比较灵活)。

③ Match No.(0 for Random):非必传,取第几个值,多个值用**;** 分隔。0:随机,默认;-1:所有;1:第一个值。这里可以为空或者填0。

5. HTTP请求【加入购物车】

(1)设置【 HTTP请求】

① 名称:加入购物车。

② 请求方法:选择POST。

③ 路径:?s=api/cart/save &application=app&application_client_type=weixin&**token={login_token}**。这里先是参数s的值修改加入购物车的请求URL,其次再添加token的参数(接口文档写明了"token默认使用GET传递"),所以这里路径需要添加参数token。前面【登录】时已获取到token的值,所以这里直接**{login_token}**引用获取。

④ 参数:接口文档中参数JSON形式,这里参数选择【消息体数据】(加之参数太多,一个个添加太麻烦),数据如下:

{
"goods_id": "2",
"spec": [
{
"type": "套餐",
"value": "套餐二"
},
{
"type": "颜色",
"value": "银色"
},
{
"type": "容量",
"value": "64G"
}
],
"stock": "5"
}

注意:::"消息体数据"是JSON格式的,这里一定要注意格式没有问题 !!!

如果是手动敲入的一般不会存在格式问题(数据少量时)。如果(数据较多)需要复制粘贴的一定要注意格式问题,最好是在文本编译器里过一遍(例如记事本、notepad++等)。

JMeter工具也有格式校验功能,只是如果不熟悉的人很可能忽视。之前操作时有格式问题,JMeter工具在"goods_id":"2" 这一行的最前面显示一块红色。只是第一次用工具不熟悉,不清楚红色表示格式有误,导致执行结果树有报错,一直找不到原因。后来又从头到尾操作一遍,数据手动敲入的,执行结果就没问题了。才知晓是格式问题导致执行失败!!!自己找了将近3个小时的原因,才找到原因。

**  补充知识** :"goods_id":"2 ",商品id获取的方式一:通过数据库表【商品表】sxo_goods直接查看id字段值。方式二:通过登录商城后点击商品信息,进入商品信息页面,url中最后的参数就是id.html。

(2)设置【JSON断言】

6.【HTTP信息头管理器】

JMeter工具HTTP请求的请求头Content-Type属性的值默认是表单类型,而【加入购物车】接口的参数是【消息体数据】,是JSON格式,所以要在【注册】层级下新增【HTTP信息头管理器】。

(1)新建【HTTP消息头管理器】

【右击】【添加】【配置元件】【HTTP信息头管理器】

(2)设置【HTTP消息头管理器】

① 添加名称:content-type,值:application/json

7.调试取样器

8.查看结果树

(1)【加入购物车】:失败原因:token鉴权原因、参数JSON格式有误。

(3)【调试取样器】:排错:排到参数的用户名跟登录商城的用户名不一致。

相关推荐
文人sec14 小时前
性能测试-jmeter9-逻辑控制器、定时器压力并发
测试工具·jmeter·性能优化·模块测试
CesareCheung2 天前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流2 天前
jmeter使用技巧
jmeter
春时似衿里2 天前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书2 天前
JMeter的安装部署
jmeter
程序员杰哥2 天前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎2 天前
Jmeter测试
jmeter
卓码软件测评2 天前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
BatyTao3 天前
Jmeter执行数据库操作
数据库·jmeter
二宝哥3 天前
性能测试工具Jmeter之java.net.BindException: Address already in use
jmeter