JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)

在接口测试中,实际【很少】会碰到一种情况:某一个参数需要传递多个值;第一次碰到时,手足无措,最近略有体会,就整理、分享下。

因为是真实接口,所以图片多处有马赛克,请多理解。

个人博客:https://blog.csdn.net/zyooooxie

(一)Requests文档的小意外

公司项目有个接口是可以传多个值,我就想用Requests来试试,在复习自己敲得代码笔记时,发现一点点小问题。

在这里插入图片描述

上图这是我学习的笔记,看到这个用例的多行注释中写的 请求是以一个元组列表来提供这些参数;

代码中有元组列表?哪呢?

追根溯源,看下当时学习的 Requests 的中文文档

在这里插入图片描述

再看下 英文文档
在这里插入图片描述

所以翻车了啊;

但是中文文档的写法真的不能用吗?请接着看

(二)Requests处理 post请求 一个参数传多个值

下图是要分享的这个例子的接口文档;可以看到invitedUserIds这个参数是一个被邀请用户id集合,也就是说这个参数可以传多个值;【此外token、userId都是必传,得先登录才可用此接口】

在这里插入图片描述

先看下手机App成功创建聊天室的抓包数据【gpChatroomId=1000181】

在这里插入图片描述

再看用Requests如何来写这个接口的正向用例:

第一种:参数值写做一个列表 a list of items as a value

(a dictionary with lists as values)

在这里插入图片描述

看下实际运行结果:【gpChatroomId=1000182】

在这里插入图片描述

抓包数据【gpChatroomId=1000182】

在这里插入图片描述

第二种:以一个元组 来提供这些参数

在这里插入图片描述

实际运行结果:【gpChatroomId=1000183】

在这里插入图片描述

抓包数据【gpChatroomId=1000183】

在这里插入图片描述

第三种:以一个元组列表 来提供这些参数 a list of tuples as values

在这里插入图片描述

实际运行结果:【gpChatroomId=1000184】

在这里插入图片描述

抓包数据【gpChatroomId=1000184】

在这里插入图片描述

这些图,让人眼花缭乱;回归本质,来看下源码中的post()、get():

在这里插入图片描述

在这里插入图片描述

关于实际传参:

(optional) Dictionary, list of tuples, bytes, or file-like object【post】
(optional) Dictionary, list of tuples or bytes 【get】

所以结论呢,是推荐用list of tuples,元组列表【第三种处理方式】;

(三)JMeter、Postman处理 post请求 一个参数传多个值

还是这个接口,看下JMeter、Postman这两个工具是如何处理的;

JMeter

登录请求:

在这里插入图片描述

创建聊天室的请求:

在这里插入图片描述

响应数据:【gpChatroomId=1000188】 不仔细看 和186超级像

在这里插入图片描述

Postman

登录请求:请求Body和实际响应Body

在这里插入图片描述

登录请求:断言和实际断言结果、全局变量的设置

在这里插入图片描述

创建聊天室请求:请求Body和实际响应Body

在这里插入图片描述

抓包数据【gpChatroomId=1000186】

在这里插入图片描述

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、PostMan接口参数化操作步骤; 2、环境变量设置步骤; 3、A接口返回例如token赋给B接口请求参数操作步骤; 图文并茂 1 接口参数化 第一步:点击右上角图标,打开环境配置页面,选择Globals,设置全局变量; 第二步:添加变量名称,设置对应的变量,保存; 第三步:接口地址或者需要取参数value设置;注意需要取的设置为{{变量名}},双大括号,即可取全局变量设置的。 TIPS: 如果需要批量修改接口参数等,可导出后编辑,批量替换,再导入即可,注意需要修改接口地址以及下方的参数。 2 接口返回存入环境变量 第一步:查看接口返回; { "data": { "leaguerId": "161", "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxNjEiLCJjcmVhdGVkIjoxNTI5NTcyNTkzMTI5LCJleHAiOjE1Mjk1Nzk3OTN9.U6qmR-Qa9sJpwxShLOC8WLPBlhLxWWiQTv5bZtyOV0mdyCSHnFBb_p6T5PBY20m_0m2AmrQZGfrv6hvHCPAaow" }, "status": 200 } 第二步:在接口的TESTS页签中输入以下内容(视返回情况修改): pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 把responseBody转为json字符串 var Jsondata = JSON.parse(responseBody); // 设置环境变量access-token,供后面的接口引用 pm.environment.set("access-token ", Jsondata.data.token ); 第三步:重新发送上一个接口的参数信息测试,执行后查看环境变量;如图,则表示环境变量的已经正常存储; 3 参数化取其他接口的返回 第一步:修改需要引用上述token的接口参数参数value设置为{{access-token}}({{变量名}}),测试接口,正确返回即可;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值